当前位置: 代码迷 >> PB >> 调用GetFileSaveName函数导致数据库连接异常
  详细解决方案

调用GetFileSaveName函数导致数据库连接异常

热度:108   发布时间:2016-04-29 10:06:12.0
调用GetFileSaveName函数导致数据库连接错误?
我在一个窗口上放了一个dw,一个查询按钮和导出按钮。数据库是用的access。

dw是通过调用syntaxFromSQL和dw.create动态生成的。

导出是用的GetFileSaveName和SaveAsAscii

现在的问题是:查询没有问题,导出dw的内容到英文目录下也没有问题。
但是如果导出到中文目录下,导出执行成功,但是再次点击查询就会报错:

我看了下,发现是执行GetFileSaveName函数时,只要是选择中文目录,在成功执行后,如果再次查询,就报上面的错。

请问各位,这是什么问题?

------解决方案--------------------
连接access是怎么样连接的?
------解决方案--------------------
GetFileSaveName执行后会修改系统默认路径,你可以尝试在用 ChangeDirectory(系统路径)
把系统路径在改回来
------解决方案--------------------
尝试一下:把
SQLCA.DBParm = "ConnectString='DSN=MS Access Database;DBQ=.\db.mdb;PWD=xxx',CommitOnDisconnect='No'"

中dbq 处改写成绝对路径。
------解决方案--------------------
动态生成的时候,由于syntaxfromsql时需要读取数据库的信息,所以出问题也是正常的,
你定义一个全局的string gs_dir在应用的open事件里面 gs_dir = GetCurrentDirectory(),再到GetFileSavename调用后Changedirectory(gs_dir)试试,
并不只是数据库文件的问题,你运行的环境也放在当前目录的,当前目录改变后,如果要引用那些dll也会有问题;