请教pb6.5和 anywhere5.0安装盘制作的问题

时间:2022-04-18 00:23:09
请教用pb6.5和 anywhere5.0开发的系统,在其它无pb和anywhere的pc机上安装,所必须的DLL和EXE文件.
    谢谢!

6 个解决方案

#1


shared目录中的dll全拷贝过去,肯定没错,要在注册表中指明dll路径,和exe路径
要装sqlAnywhere的ODBC驱动(应该是通过ODBC连接数据库的吧),配置ODBC.
Sybase提供了一个安装程序,可以去它的站点下载,虽然也不是很好用,但总比全
手工简单点。:)

#2


MikeLearn的办法可以包括到用到的dll文件,没错,只是所有的dll,太大了,你自己的exe和dll加起来也许不到2M,share下的dll差不多有30M。
其实,只要有以下几个dll就可以了,而且如果你把这些dll放在exe相同的目录里,或者放在
windows/system/下面,可以不必说明就可以找到所需要的dll文件。
这些dll是
Pbvm60.dll,pbdwe60.dll,pbodb60.dll,pbrtc60.dll,pbtra60.dll,pbmss60.dll,pbsql60.dll。而且就是上面这些dll都不是全部需要,根据使用数据库不同还可以去掉一、两个。再有,因为你用anywhere,所以需要在客户机器上安装简单的Sql Anywhere5.0。要拷贝dbeng50过去。
建议使用Sybase的SetupBuilder,但是PB5.0时有,后来我用6.0、6.5、7.0就没有发现了。
另外Install Shield有一个选项是针对PowerBuilder的,不妨试试看!
祝你好运!

#3


访问 SQL Anywhere 需要和程序一起发布的数据引擎文件: dbeng50.exe, WOD50T.DLL, WTR50T.DLL
SQL Anywhere 数据库需要在注册表注册,制作安装盘可以制作进去,下面是用 PB 编的注册表程序,可以参考:假设你的程序文件夹 c:\myapp, 数据库 mydata.db, 用户 dba

RegistrySet("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\dbeng50.exe","path", RegString!, "c:\myapp")
RegistrySet("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\dbeng50.exe","", RegString!, "c:\myapp\dbeng50.exe")

RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0 Translator","Driver", RegString!, "c:\myapp\WTR50T.DLL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0 Translator","Setup", RegString!, "c:\myapp\WTR50T.DLL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0 Translator","Translator", RegString!, "c:\myapp\WTR50T.DLL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0","Driver", RegString!, "c:\myapp\WOD50T.DLL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0","Setup", RegString!, "c:\myapp\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\ODBC\ODBC.INI\myapp","AutoStop", RegString!, "yes")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","DatabaseFile", RegString!, "c:\myapp\mydata.db")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","DatabaseName", RegString!, "mydata")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","Description", RegString!, "myapp")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","Driver", RegString!, "WOD50T.DLL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","PWD", RegString!, "")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","Start", RegString!, "dbeng50.exe -d -Q -c1024")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","UID", RegString!, "dba")

RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","Driver", RegString!, "c:\myapp\WOD50T.DLL")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","uid", RegString!, "dba")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","Start", RegString!, "c:\myapp\dbeng50.exe -d -Q -c1024")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","DatabaseFile", RegString!, "c:\myapp\mydata.db")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","DatabaseName", RegString!, "mydata")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","AutoStop", RegString!, "yes")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","Description", RegString!, "myapp")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources","myapp", RegString!, "Sybase SQL Anywhere 5.0")

RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","Driver", RegString!, "c:\myapp\WOD50T.DLL")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","uid", RegString!, "dba")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","Start", RegString!, "c:\myapp\dbeng50.exe -d -Q -c1024")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","DatabaseFile", RegString!, "c:\myapp\mydata.db")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","DatabaseName", RegString!, "mydata")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","AutoStop", RegString!, "yes")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","Description", RegString!, "myapp")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\ODBC Data Sources","myapp", RegString!, "Sybase SQL Anywhere 5.0")

#4


1 必须文件(拷入本应用路径):Pbvm60.dll,pbdwe60.dll,pbodb60.dll,pbsyc60.dll,dbeng50.exe, WOD50T.DLL, WTR50T.DLL,WL50ENT.DLL,pbodb60.ini,DBL50T.DLL

2 将下列文本存成 *.reg 文件,替换 dbname---->数据库名称;appPath----〉安装路径

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\dbname]
"Driver"="D:\\appPath\\wod50t.dll"
"UID"="dba"
"PWD"="sql"
"Start"="D:\\appPath\\dbeng50.exe -Q"
"DatabaseFile"="D:\\appPath\\dbname.db"
"DatabaseName"="dbname"
"AutoStop"="yes"


3 在资源管理器双击 *.reg ,注册成功,即可运行自己的应用程序!ok,走不通,发email to me ! wuyongjin1@sina.com

#5


只要把相关文件(Dbeng50.exe,wl50ent.dll,wtr50t.dll,wod50t.dll)拷贝到当前目录(如 D:\temp)下就OK!
在ODBC.INI中加上:wod50t.dll所在路径,如:Gzmis.db是数据库名,d:\temp是当前目录。
[Gzmis]
Driver32 = D:\temp\wod50t.dll
在注册表中加上:
HKEY_CURRENT_USER\SoftWare\ODBC\ODBC.INI\Gzmis中加下面几项:
AutoStop "Yes"
DatabaseFile "d:\temp\gzmis.db"
DataBaseName "Gzmis"
Driver "d:\temp\wod50t.dll"
PWD "sql"
Start "dbeng50"
UID "dba"
只要使用两个函数:
setProfileString()//设置INI.
Registryset()//设置注册表.
再加上PB的DLL动态库就OK!
如 PWD改了的按改了的值。

#6


建议您访问www.etechbase.net/tech,里面有很多资料,也许可以解决您的问题。
访问http://168.168.18.11:81/etechbase/advsearch.php将您的问题输入查询内容框,选择不同的精确程度,即可以找到你所需要的答案。效果还是可以的。

#1


shared目录中的dll全拷贝过去,肯定没错,要在注册表中指明dll路径,和exe路径
要装sqlAnywhere的ODBC驱动(应该是通过ODBC连接数据库的吧),配置ODBC.
Sybase提供了一个安装程序,可以去它的站点下载,虽然也不是很好用,但总比全
手工简单点。:)

#2


MikeLearn的办法可以包括到用到的dll文件,没错,只是所有的dll,太大了,你自己的exe和dll加起来也许不到2M,share下的dll差不多有30M。
其实,只要有以下几个dll就可以了,而且如果你把这些dll放在exe相同的目录里,或者放在
windows/system/下面,可以不必说明就可以找到所需要的dll文件。
这些dll是
Pbvm60.dll,pbdwe60.dll,pbodb60.dll,pbrtc60.dll,pbtra60.dll,pbmss60.dll,pbsql60.dll。而且就是上面这些dll都不是全部需要,根据使用数据库不同还可以去掉一、两个。再有,因为你用anywhere,所以需要在客户机器上安装简单的Sql Anywhere5.0。要拷贝dbeng50过去。
建议使用Sybase的SetupBuilder,但是PB5.0时有,后来我用6.0、6.5、7.0就没有发现了。
另外Install Shield有一个选项是针对PowerBuilder的,不妨试试看!
祝你好运!

#3


访问 SQL Anywhere 需要和程序一起发布的数据引擎文件: dbeng50.exe, WOD50T.DLL, WTR50T.DLL
SQL Anywhere 数据库需要在注册表注册,制作安装盘可以制作进去,下面是用 PB 编的注册表程序,可以参考:假设你的程序文件夹 c:\myapp, 数据库 mydata.db, 用户 dba

RegistrySet("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\dbeng50.exe","path", RegString!, "c:\myapp")
RegistrySet("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\dbeng50.exe","", RegString!, "c:\myapp\dbeng50.exe")

RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0 Translator","Driver", RegString!, "c:\myapp\WTR50T.DLL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0 Translator","Setup", RegString!, "c:\myapp\WTR50T.DLL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0 Translator","Translator", RegString!, "c:\myapp\WTR50T.DLL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0","Driver", RegString!, "c:\myapp\WOD50T.DLL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sybase SQL Anywhere 5.0","Setup", RegString!, "c:\myapp\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\ODBC\ODBC.INI\myapp","AutoStop", RegString!, "yes")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","DatabaseFile", RegString!, "c:\myapp\mydata.db")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","DatabaseName", RegString!, "mydata")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","Description", RegString!, "myapp")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","Driver", RegString!, "WOD50T.DLL")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","PWD", RegString!, "")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","Start", RegString!, "dbeng50.exe -d -Q -c1024")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\myapp","UID", RegString!, "dba")

RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","Driver", RegString!, "c:\myapp\WOD50T.DLL")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","uid", RegString!, "dba")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","Start", RegString!, "c:\myapp\dbeng50.exe -d -Q -c1024")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","DatabaseFile", RegString!, "c:\myapp\mydata.db")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","DatabaseName", RegString!, "mydata")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","AutoStop", RegString!, "yes")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\myapp","Description", RegString!, "myapp")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources","myapp", RegString!, "Sybase SQL Anywhere 5.0")

RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","Driver", RegString!, "c:\myapp\WOD50T.DLL")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","uid", RegString!, "dba")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","Start", RegString!, "c:\myapp\dbeng50.exe -d -Q -c1024")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","DatabaseFile", RegString!, "c:\myapp\mydata.db")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","DatabaseName", RegString!, "mydata")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","AutoStop", RegString!, "yes")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\myapp","Description", RegString!, "myapp")
RegistrySet("HKEY_USERS\.DEFAULT\Software\ODBC\ODBC.INI\ODBC Data Sources","myapp", RegString!, "Sybase SQL Anywhere 5.0")

#4


1 必须文件(拷入本应用路径):Pbvm60.dll,pbdwe60.dll,pbodb60.dll,pbsyc60.dll,dbeng50.exe, WOD50T.DLL, WTR50T.DLL,WL50ENT.DLL,pbodb60.ini,DBL50T.DLL

2 将下列文本存成 *.reg 文件,替换 dbname---->数据库名称;appPath----〉安装路径

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\dbname]
"Driver"="D:\\appPath\\wod50t.dll"
"UID"="dba"
"PWD"="sql"
"Start"="D:\\appPath\\dbeng50.exe -Q"
"DatabaseFile"="D:\\appPath\\dbname.db"
"DatabaseName"="dbname"
"AutoStop"="yes"


3 在资源管理器双击 *.reg ,注册成功,即可运行自己的应用程序!ok,走不通,发email to me ! wuyongjin1@sina.com

#5


只要把相关文件(Dbeng50.exe,wl50ent.dll,wtr50t.dll,wod50t.dll)拷贝到当前目录(如 D:\temp)下就OK!
在ODBC.INI中加上:wod50t.dll所在路径,如:Gzmis.db是数据库名,d:\temp是当前目录。
[Gzmis]
Driver32 = D:\temp\wod50t.dll
在注册表中加上:
HKEY_CURRENT_USER\SoftWare\ODBC\ODBC.INI\Gzmis中加下面几项:
AutoStop "Yes"
DatabaseFile "d:\temp\gzmis.db"
DataBaseName "Gzmis"
Driver "d:\temp\wod50t.dll"
PWD "sql"
Start "dbeng50"
UID "dba"
只要使用两个函数:
setProfileString()//设置INI.
Registryset()//设置注册表.
再加上PB的DLL动态库就OK!
如 PWD改了的按改了的值。

#6


建议您访问www.etechbase.net/tech,里面有很多资料,也许可以解决您的问题。
访问http://168.168.18.11:81/etechbase/advsearch.php将您的问题输入查询内容框,选择不同的精确程度,即可以找到你所需要的答案。效果还是可以的。