ODBC连接数据库,编译后正常,打包程序exe出现问题

hjthua 2011-05-03 04:00:45
程序用的ODBC连接ACCESS数据库,编译后正常。打包后加入PBODB90.dll后,程序数据管道功能不行。把PBODB90.dll去后正常。创建ODBC是在程序里内部写入注册表的,如果不加入PBODB90.dll则创建不了ODBC,登录不进系统。如果把PBODB90.dll加入,管道就报目的数据库出错(-17)。哪位高手指教一下?


...全文
195 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengyiming 2011-05-12
  • 打赏
  • 举报
回复
设置 system dsn吧!
sagocycas 2011-05-11
  • 打赏
  • 举报
回复
用pb自带的打包工具打包,然后到虚拟机安装,然后把安装路径的文件都拷出来就不会缺文件了,
用odbc连接access无需注册表创建odbc
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='UID=;PWD=;Driver=Microsoft Access Driver (*.mdb);dbq=c:\test.mdb'"
Samoon 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yyoinge 的回复:]
我发布程序时一般不带PBODB90.ini这个文件的,也都没问题,不过我的程序虽然使用了ODBC,但没有使用数据管道。
是不是使用ODBC连接的数据管道的就必须带上 PBODB90.ini 这个文件呢?
[/Quote]

学习了
zjl8008 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yyoinge 的回复:]
我发布程序时一般不带PBODB90.ini这个文件的,也都没问题,不过我的程序虽然使用了ODBC,但没有使用数据管道。
是不是使用ODBC连接的数据管道的就必须带上 PBODB90.ini 这个文件呢?
[/Quote]
需要注意了
hjthua 2011-05-05
  • 打赏
  • 举报
回复
应该是的。。。。
yyoinge 2011-05-05
  • 打赏
  • 举报
回复
我发布程序时一般不带PBODB90.ini这个文件的,也都没问题,不过我的程序虽然使用了ODBC,但没有使用数据管道。
是不是使用ODBC连接的数据管道的就必须带上 PBODB90.ini 这个文件呢?
hjthua 2011-05-05
  • 打赏
  • 举报
回复
发现问题了,少了个PBODB90.ini文件。
yyoinge 2011-05-04
  • 打赏
  • 举报
回复
UID 换成 admin
另外Driver这边,确定是“C:\Windows\System32\odbcjt32.dll”吗?会不会是“C:\WinNT\System32\odbcjt32.dll”
hjthua 2011-05-04
  • 打赏
  • 举报
回复
在开发状态是对的,有这个文件odbcjt32.dll,//注册本地Access数据库ODBC数据源
registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\odbc data sources","TestLocal",regstring!,"Microsoft Access Driver (*.mdb, *.accdb)")
registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\TestLocal","",regstring!,"")
registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\TestLocal","DBQ",regstring!,currentdir+"\TestLocal -.mdb")
registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\TestLocal","Driver",regstring!,"C:\Windows\System32\odbcjt32.dll")
registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\TestLocal","DriverId",regulong!, 25)
registrySet("HKEY_current_user\software\odbc\odbc.ini\TestLocal","SafeTransactions",regulong!,0);
registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\TestLocal","FIL",regstring!,"MS Access;")
registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\TestLocal","UID",regstring!,"")
registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\TestLocal","PWD",regstring!,"")
yyoinge 2011-05-04
  • 打赏
  • 举报
回复
system32目录下有没有 odbcjt32.dll 这个文件?
yyoinge 2011-05-04
  • 打赏
  • 举报
回复
ODBC 注册表怎么写的
yyoinge 2011-05-04
  • 打赏
  • 举报
回复
在开发状态下可以成功吗
hjthua 2011-05-04
  • 打赏
  • 举报
回复
楼上,管道就报目的数据库出错(-17)。
yyoinge 2011-05-04
  • 打赏
  • 举报
回复
sqlerrtext 提示什么
hjthua 2011-05-04
  • 打赏
  • 举报
回复
楼上,我在程序内部注册的access数据库,odbc,所以做成exe需要PBODB90.dll才能来能上数据库,有了之后管道就报错。刚试了加入PBMSS90.DLL,也不行。
Samoon 2011-05-04
  • 打赏
  • 举报
回复
连接ACCESS数据库为什么要用PBODB90.dll?
楼主尝试一下加上PBMSS90.DLL 看看吧
另外,楼主,详细检查一下你的注册表操作语句有没有什么地方拼错了, 空格都是敏感的。
hjthua 2011-05-04
  • 打赏
  • 举报
回复
楼上,试了,问题还是老样子,有PBODB90.dll文件,就报那个错,没有就对。

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧