打包的问题,试了很多方法都不行,请各位大虾指点指点...(急!!!)

c12 2002-08-22 08:36:33
我是用PB+SQL ANYWHERE 5.0开发的,注册表的东西是在程序里写入的。
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\qyb","AutoStop", RegString!, "yes")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\qyb","DatabaseFile", RegString!, "d:\test\qyb.db")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\qyb","DatabaseName", RegString!, "qyb")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\qyb","Description", RegString!, "qyb")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\qyb","Driver", RegString!, "WOD50T.DLL")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\qyb","PWD", RegString!, "")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\qyb","Start", RegString!, "d:\test\dbeng50.exe -d -Q -c1024")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\qyb","UID", RegString!, "dba")

RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\qyb","Driver", RegString!, "d:\test\WOD50T.DLL")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\qyb","uid", RegString!, "dba")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\qyb","Start", RegString!, "d:\test\dbeng50.exe -d -Q -c1024")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\qyb","DatabaseFile", RegString!, "d:\test\qyb.db")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\qyb","DatabaseName", RegString!, "qyb")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\qyb","AutoStop", RegString!, "yes")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\qyb","Description", RegString!, "qyb")

RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources","qyb", RegString!, "Sybase SQL Anywhere 5.0")

RegistrySet( "HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\qyb","Driver", RegString!, "d:\test\WOD50T.DLL")
RegistrySet( "HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\qyb","uid", RegString!, "dba")
RegistrySet( "HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\qyb","Start", RegString!, "d:\test\dbeng50.exe -d -Q -c1024")
RegistrySet( "HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\qyb","DatabaseFile", RegString!, "d:\test\qyb.db")
RegistrySet( "HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\qyb","DatabaseName", RegString!, "qyb")
RegistrySet( "HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\qyb","AutoStop", RegString!, "yes")
RegistrySet( "HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\qyb","Description", RegString!, "qyb")

RegistrySet( "HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\ODBC Data Sources","qyb", RegString!, "Sybase SQL Anywhere 5.0")

RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0 Translator","Driver", RegString!, "d:\test\WTR50T.DLL")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0 Translator","Setup", RegString!, "d:\test\WTR50T.DLL")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0 Translator","Translator", RegString!, "d:\test\WTR50T.DLL")

RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0","Driver", RegString!, "d:\test\WOD50T.DLL")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0","Setup", RegString!, "d:\test\WOD50T.DLL")

RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers","Sybase SQL Anywhere 5.0", RegString!, "Installed")

RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Translators","Sybase SQL Anywhere 5.0 Translator", RegString!, "Installed")
RegistrySet( "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\dbeng50.exe","path", RegString!, "d:\test")
RegistrySet( "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\dbeng50.exe","", RegString!, "d:\test\dbeng50.exe")

程序编译后放在 d:\test目录下,PB所需要的3个DLL,SQL ANYWHERE 5.0所需要的DLL我也COPY到那个目录下了(包括了pbodb60.dll)。
但是运行编译好的EXE时还是提示“DBMS ODBC is not supported in your current installation.”

请各位帮帮忙啊?非常着急啊!!!
...全文
44 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
c12 2002-08-22
  • 打赏
  • 举报
回复
to dzhcheng(逸枫) :
谢谢了。
dzhcheng 2002-08-22
  • 打赏
  • 举报
回复
关注!! ^_^
c12 2002-08-22
  • 打赏
  • 举报
回复
大家帮帮忙啊。
老板又在催了。
c12 2002-08-22
  • 打赏
  • 举报
回复
to jeking(苦命人):
我觉得我才是苦命的人啊。
jeking 2002-08-22
  • 打赏
  • 举报
回复
也许错了。对不起。没看清楚是你用的是SQL ANYWHERE 5.0

/------------------\
苦命……命苦……
一切由自己决定!
\------------------/
jeking 2002-08-22
  • 打赏
  • 举报
回复
写错了
dbodbc6.dll-》
dbodbc5.dll

/------------------\
苦命……命苦……
一切由自己决定!
\------------------/
jeking 2002-08-22
  • 打赏
  • 举报
回复
我认为是这个不对

RegistrySet( "HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\qyb","Driver", RegString!, "d:\test\WOD50T.DLL")

->

RegistrySet( "HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\qyb","Driver", RegString!, "d:\test\dbodbc6.dll")

/------------------\
苦命……命苦……
一切由自己决定!
\------------------/
c12 2002-08-22
  • 打赏
  • 举报
回复
对了,我的连接数据库语句这么写行不行:

SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Connectstring='DSN=qyb;UID=dba;PWD=sql'"
c12 2002-08-22
  • 打赏
  • 举报
回复
to giraffe(大胖) :
没有少那条语句,在下面呢。
c12 2002-08-22
  • 打赏
  • 举报
回复
to smilelhh(blue):
我用的是PB 6.5 ,
所需要的DLL都有:
pbdwe60.dll
pbvm60.dll
pbsyc60.dll
pbodb60.dll
dbl50t.dll
dbtl50t.dll
WL50ENT.DLL
WOD50T.DLL
WTR50T.DLL
DBENG50.EXE
这些都有了。
giraffe 2002-08-22
  • 打赏
  • 举报
回复
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0下好像少了Setup,键值d:\Sybase\SQL Anywhere 5.0\win32\wod50t.dll.
yuxuan 2002-08-22
  • 打赏
  • 举报
回复
没编译时正常吗?如果正常
1.你可以把PB中带的dll文件都拷到exe所在目录,试试.
2.如果不行,尝试重新安装pb
smilelhh 2002-08-22
  • 打赏
  • 举报
回复
那是说你的动态联接库不够。
PB中至少需要如下dll
PBVM70 DLL 4,247,040 10-31-00 19:49 Pbvm70.dll
PBTRA70 DLL 64,000 10-31-00 19:49 Pbtra70.dll
PBODB70 DLL 428,032 10-31-00 19:49 Pbodb70.dll
PBGEN70 DLL 510,464 10-31-00 19:49 Pbgen70.dll
PBDWE70 DLL 2,047,488 10-31-00 19:49 Pbdwe70.dll
LIBJCC DLL 320,512 10-30-00 16:30 Libjcc.dll
c12 2002-08-22
  • 打赏
  • 举报
回复
给分了。
c12 2002-08-22
  • 打赏
  • 举报
回复
各位,辛苦你们了,问题基本解决。
谢谢。
c12 2002-08-22
  • 打赏
  • 举报
回复
to ice2water(大冰):
你添加数据源了吗?
ice2water 2002-08-22
  • 打赏
  • 举报
回复
我最近用ANYWHERE 5.0做数据库写了一个小程序,遇到两个问题:
一是在连接代码:
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Connectstring='DSN=qyb;UID=dba;PWD=sql'"
后检查SQLCA.sqlcode的值在编译时就报错,说是transection不存在,
二是exe程序在运行在数据窗口部份时报错,要求进行settransobject,但在pb时运行则不出错。
另外请问在anywhere中如何建立数据库,我用的是PB 自带的?
c12 2002-08-22
  • 打赏
  • 举报
回复
to look123(孤独的手) :
你的打包后也能用吗?
look123 2002-08-22
  • 打赏
  • 举报
回复
//zwkc是数据库的名字
look123 2002-08-22
  • 打赏
  • 举报
回复
俺用的注册文件是这样的,一直正常使用,俺用的是PB8,如果没用实在对不起了,俺实在没时间看您那一堆代码:
string st
int i
i=registryget("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources","zwkc",regstring!,st)

//if i<>1 then
registryset("HKEY_CURRENT_USER\software\ODBC\ODBC.INI\ODBC Data Sources","zwkc",regstring!,"Adaptive Server Anywhere 7.0")
registryset("HKEY_LOCAL_MACHINE\software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 7.0","Driver",regstring!,"c:\zwkc\ku\dbodbc7.dll")
registryset("HKEY_LOCAL_MACHINE\software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 7.0","Setup",regstring!,"c:\zwkc\ku\dbodbc7.dll")
registryset("HKEY_CURRENT_USER\software\ODBC\ODBC.INI\zwkc","start",regstring!,"c:\zwkc\ku\dbeng7.exe -d -c8m")
registryset("HKEY_CURRENT_USER\software\ODBC\ODBC.INI\zwkc","PWD",regstring!,"sql")
registryset("HKEY_CURRENT_USER\software\ODBC\ODBC.INI\zwkc","UID",regstring!,"dba")
registryset("HKEY_CURRENT_USER\software\ODBC\ODBC.INI\zwkc","Integrated",regstring!,"No")
registryset("HKEY_CURRENT_USER\software\ODBC\ODBC.INI\zwkc","AutoStop",regstring!,"Yes")

registryset("HKEY_CURRENT_USER\software\ODBC\ODBC.INI\zwkc","driver",regstring!,"c:\zwkc\ku\dbodbc7.dll")
registryset("HKEY_CURRENT_USER\software\ODBC\ODBC.INI\zwkc","databasename",regstring!,"zwkc")
registryset("HKEY_CURRENT_USER\software\ODBC\ODBC.INI\zwkc","databasefile",regstring!,"c:\zwkc\zwkc.db")
//messagebox("提示:","注册表更新成功。")
return
//end if

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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