以文本方式查看主题 - 搭建论坛 (http://bbs.diylsoft.com:8118/starforum/index.asp) -- 数据库交流 (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=6) ---- 关于SQL语句中的文件名问题 (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=6&id=15789) |
||||
-- 作者:reachtone -- 发布时间:2008-3-6 17:01:53 -- 关于SQL语句中的文件名问题 如附件所示,请先将附件解压到一个文件夹里,如ABC。。。 问题如下:如果直接在IPD文件上双击,可以正常运行;但如果通过搭建之星的“打开”,则提示出错,问题就出在SQL语句中的文件名上。 即使在搭建的运行环境中,将用户目录设置为该文件夹,打开仍然出错。。
|
||||
-- 作者:reachtone -- 发布时间:2008-3-6 17:11:47 -- 进一步测试发现,通过搭建之星的“打开”,有时又不出错,非常奇怪。 出错时的提示信息表明,搭建将SQL语句中所涉及的数据库文件默认到搭建之星的安装目录下了。此问题必须解决,因为跨文件的数据表查询操作是很常见的。 |
||||
-- 作者:admin -- 发布时间:2008-3-6 18:24:45 -- 我这里反复打开“文件”和“数据表”都没有问题。 |
||||
-- 作者:FSJM -- 发布时间:2008-3-6 18:43:21 -- 是当前缺省 目录的问题;".\\" 指当前目录下,如果当前目录改变就会出错;最好改绝对目录,以利于多用户操作。 |
||||
-- 作者:reachtone -- 发布时间:2008-3-6 23:51:36 -- 以下是引用FSJM在2008-3-6 18:43:21的发言:
是当前缺省 目录的问题;".\\" 指当前目录下,如果当前目录改变就会出错;最好改绝对目录,以利于多用户操作。 您说是缺省目录的问题,可是,如果直接双击IPD文件,它的运行是正常的啊。这又该如何解释呢? 只有通过星的“打开”时才会出错,而且有时出错,有时不出错。出错时的提示信息表明,系统反而把搭建之星的安装目录作为默认路径了。是不是搭建的“运行环境”设置需要再作改进? 改绝对目录是不行的,因为我无法确认用户会把这个定制的应用系统安装在哪个目录下。但在当前这个应用系统中,data这个子目录是必须存在的,所以,必须用.\\ 就目前这个例子,不知是否有更好的解决办法? |
||||
-- 作者:FSJM -- 发布时间:2008-3-7 8:43:00 -- 打开一个目录,当然是但前目录,点击 IPD 肯定执行正确。 |
||||
-- 作者:reachtone -- 发布时间:2008-3-7 9:51:14 -- 同样的一个文件,直接执行不出错,通过星的“打开”有时出错、有时不出错。这只能说明搭建在这方面还有不完善的地方。 希望作者不要总是强调文件目录的问题,因为,您无法解释:为什么有时候通过星“打开”时又会正常运行? 所以,我总觉得,搭建之星在内部处理“安装目录”和“项目所在目录”时有欠妥的地方。比如,在设置“用户项目目录”以后,按理说打开一切文件时都会从这个默认目录中去找,但如果你插入的是图片、声音等文件,首先打开的目录竟然还是搭建之星的安装目录。这个问题我早就发现了,只是因为它并不影响正常使用,所以一直就没有反映,麻烦就麻烦点吧。 |
||||
-- 作者:FSJM -- 发布时间:2008-3-7 15:39:51 -- 因为这个就是“当前目录问题”,“打开文件对话窗” 和 通过“我的电脑”打开系统目录,操作系统对当前目录的处理是不同的,所以结果也不同。 在SQL中使用相对目录,《搭建》对此是处理不了的,《搭建》命令中的“相对目录”,是变成绝对目录后,才使用的;给设计者带来很多方便,这是《搭建》的优点。 如果要在其中要使用相对目录,必须要在运行SQL之前“设置当前目录”,但目前没有,准备这次升级增加;但即使这样设计状态下打开还是会有问题(因为设计状态,是不会运行设置的命令)。 在多“任务状态运行”状态下(同时运行多个程序),也有可能出现问题(因对当前目录的争夺),所以我们不赞成在SQL中使用相对目录。 一定要在SQL运行之前,把相对目录变成绝对目录;目前你只能动态设置。程序最好不要运行在一种假设的状态下。 |
||||
-- 作者:reachtone -- 发布时间:2008-3-7 16:04:04 -- 谢谢FSJM的回复,我再好好研究一下。期待着早日看到升级版本。。 |
||||
-- 作者:reachtone -- 发布时间:2008-3-7 18:34:24 -- 在FSJM的启发下,通过“文件名称操作”构件,动态取得数据库文件的绝对目录,然后再赋值给SQL语句,问题彻底解决。 只是这样显得麻烦了一点点。。 |