******************************************************
* 用Install Shield制作PB8程序的安装盘(WIN2000) *
******************************************************
一、安装盘需要打包的文件
1. PB运行环境动态连接库
a. PB运行环境
pbvm80.dll PB虚拟机,一定要有
libjcc.dll
pbdwe80.dll 对数据窗口的支持
b. 必要的Microsoft接口(\winnt\system32目录下)
Msvcrt.dll
Msvcrt40.dll
Olepro32.dll
c.好象还需要以下DLL
dblgen7.dll
dbcon7.dll
dbserv7.dll
dbctrs7.dll
2. PB8与数据库客户端的专用接口或ODBC接口
pbodb80.dll
pbodb80.ini pb ODBC 专用接口 (sql anywhere必须装)
3. PB应用程序和相应的PBD或DLL
就是应用程序编译后生成的EXE和PBD (DLL)。
4. sql anywhere7相应的文件
dblib7.dll
dbodbc7.dll
dbodtr7.dll
dbcoen7.hlp
这5个文件保证已经被创建的数据库可以正常运行
5. sql anywhere7 DB文件
只要包含*.db就可以了,*.log不要(加上*.log有时会出问题)
6. 果安装应用程序的机器上没有装ODBC那么需要装这些文件:
Ds16gt.dll
Ds32gt.dll
Odbc16gt.dll
Odbc32.dll
Odbc32gt.dll
Odbccp32.cpl
Odbccp32.dll
Odbccr32.dll
Odbcinstt
Odbcinst.hlp
Odbcint.dll
Odbctrac.dll
你可以把这些文件复制到任何一个包含在Path中的目录里,
所有需要的动态连接库和文件路径都加入path中,在制作
安装程序时,应用程序和相应的动态连接库位于同一个目
录里,ODBC driver和sql anywhere位于单独的目录里。
尽量不要把所有文件混在一起,因为查起来不太方便。
二、 用installshield要完成的工作
1. 定制安装界面
2. 复制文件
3. 编写更改注册表、程序组等的脚本
4. 生成setup文件
************************************************
* 在程序中用代码动态配置ODBC *
************************************************
一、原 理
Windows中所有的ODBC数据源在系统注册表中都有记载,因此只要编写相应的代码
对注册表中的项目进行相应的修改即可。Windows中与ODBC相关的键,主要有下面几项:
HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBCDRIVER 记录所有已
安装的ODBC驱动程序;
HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI 记录各种ODBC驱动程序的相关信息;
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources 记录各种数据源的类型;
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI 记录各种数据源的详细信息。
二、实现(PB8,WIN2000)
为防止重复配置ODBC,可以设置一个配置文件记录是否已经做过此步骤,也可以在注册表中查是否有
相应的键值存在,本文采用配置文件的方法
//动态配置ODBC
int test
int rc
rc=profileint("C:\ABC_LOT\SQL_AnyWhere\abclot.ini","start","first",1) //rc=1是初次运行该系统,进行注册
if rc=1 then
//设置ODBC Drivers
test = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers",&
"Adaptive Server Anywhere8.0",RegString!,"Installed");
if test <> 1 then
messagebox("ERROR","不能设置ODBC Drivers")
end if
//设置ODBCINST.INI
test =RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere8.0",&
"",RegString!,"")
if test <> 1 then
messagebox("ERROR","不能设置ODBCINST.INI")
end if
test =RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere8.0",&
"Driver",RegString!,"C:\ABC_LOT\SQL_AnyWhere\dbodbc8.dll")
if test <> 1 then
messagebox("ERROR","不能设置ODBCINST.INI-Driver")
end if
test =RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere8.0","Setup",&
RegString!,"C:\ABC_LOT\SQL_AnyWhere\dbodbc8.dll")
if test <> 1 then
messagebox("ERROR","不能设置ODBCINST.INI-Setup")
end if
//设置ODBC Data Sourses
test =RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources","AbcLotdb",&
RegString!,"Adaptive Server Anywhere8.0")
8gen2发布会 if test <> 1 then
messagebox("ERROR","不能设置ODBC Data Sourses")
end if
//将数据源名称"AbcLotdb"注册到"HKEY_CURRENT_USER\software\odbc\odbc.ini\odbc data sources"下
test = registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\odbc data sources","AbcLotdb",&
regstring!,"Adaptive Server Anywhere 8.0")
if test <> 1 then
messagebox("ERROR","不能设置current_user odbc data sources")
end if
/*"HKEY_CURRENT_USER\software\odbc\odbc.ini"下新增以该数据源名称为键名的子键*/
test = registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\AbcLotdb","",&
regstring!,"")
if test <> 1 then
messagebox("ERROR","不能设置HKEY_CURRENT_USER\software\odbc\odbc.ini\AbcLotdb")
end if
//创建连接到数据源所需的参数
test = registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\AbcLotdb","AutoStop",&
regstring!,"yes")
if test <> 1 then
messagebox("ERROR","不能设置AutoStop")
end if
test = registryset("HKEY_CURRENT_USER\software\odbc\odbc.ini\AbcLotdb","DatabaseFile",&
regstring!,"C:\ABC_LOT\abclot.db")
if test <> 1 then
messagebox("ERROR","不能设置DatabaseFile")
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论