PowerBuilder中生成应用程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PowerBuilder中生成应用程序
//使用代码配置ODBC数据源(以Adaptive Server Anywhere 9.0为例)
/*
了解注册表相关信息
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ ODBC DRIVERS存放已经注册的ODBC数据源驱动程序
HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI下可对已经注册的ODBC数据源驱动程序进行设置
HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources下存放数据源名称及其驱动程序类型
HKEY_LOCAL_MACHINE\Software\odbc\odbc.ini下存放已经注册的ODBC数据源的具体细节
KYEY_LOCAL_MACHINE\Software\Microsoft\windows\Curre ntVersion\App Paths下存放应用程序安装到用户计算机上后在注册表中注册的应用程序名HKEY_LOCAL_MACHINE\Software\Microsoft\windows
NT\CurrentVersion下存放当前计算机中windows安装的相应信息(包括安装路径等)
*/
问题:如何找到相应的数据库驱动程序
这些文件可以在注册表的HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI下相应键中找到。
如asa9.0为dbeng9.EXE、dbodbc9.dll。
必备函数:
RegistryGet(Key,Valuename,Valuetype,Value)
功能:在PowerBuilder程序中读取注册表中的信息。
RegistrySet(Key,Valuename,Valuetype,Value)
功能:在PowerBuilder程序中设置注册表中的信息。
Key表示主键;Valuename表示键值名;Valuetype表示键值类型;Value表示键值。
//一、设置程序所需要的变量
Ulong ul_num
Int
answer,answer1,answer2,answer3,answer4,answer5,ansapp String ls_driver,ls_start,ls_location,app_path,db_path,odbcstr //二、判断windows安装路径下是否有Adaptive Server Anywhere 9.0的驱动程序
//步骤1:
//取windows xp或windows 2000安装目录,并保存到ls_location变量
answer=ReGIStryGet("HKEY_LOCAL_MACHINE\Software\Mi crosoft\windows
NT\CurrentVersion","SystemRoot",RegString!,ls_location) 1页
IF answer = -1 THEN
Messagebox('错误','应用程序无法获取windows的安装目录,系统将终止运行!',Stopsign!)
RETURN
END IF
//步骤2:
//判断Adaptive Server Anywhere 9.0的驱动程序是否正确安装ls_driver=ls_location+'\dbodbc9.dll'
ls_start=ls_location+'\dbeng9.EXE'
IF NOT (FileExists(ls_driver) AND FileExists(ls_start)) THEN
Messagebox('错误','系统中没有安装Adaptive Server Anywhere 9.0的驱动程序,系统将终止运行!',StopSign!) RETURN
else
messagebox("信息"," Adaptive Server Anywhere 9.0驱动程序已经安装!")
END IF
//三、在ODBC中注册Adaptive Server Anywhere 9.0驱动程序
//步骤1:
//设置ODBC\ODBCINST.INI\ODBC DRIVERS
answer=ReGIStrySet('HKEY_LOCAL_MACHINE\SOFTWARE\ ODBC\ODBCINST.INI\ODBC DRIVERS','Adaptive Server Anywhere 9.0',RegString!,'Installed') IF answer = -1 THEN Messagebox('错误','应用程序无法设置ODBC DRIVERS,系统将终止运行!',StopSign!)
RETURN
END IF
//步骤2:
//设置ODBC\ODBCINST.INI\
answer1=ReGIStrySet('HKEY_LOCAL_MACHINE\Software\O DBC\ODBCINST.INI\Adaptive Server Anywhere 9.0','Driver',RegString!,ls_driver)
answer2=ReGIStrySet('HKEY_LOCAL_MACHINE\Software\O DBC\ODBCINST.INI\Adaptive Server Anywhere 9.0','Setup',RegString!,ls_driver)
IF answer1 = -1 OR answer2 = -1 THEN
Messagebox('错误','应用程序无法设置ODBCINST.INI,系统将终止运行!',StopSign!)
RETURN
2页
END IF
//四、在注册表中设置ODBC数据源
//步骤1:
//设置ODBC DATA SOURCE名称(anysql为数据源名)
answer=ReGIStrySet('HKEY_LOCAL_MACHINE\Software\OD BC\ODBC.INI\ODBC Data Sources','anysql',RegString!,'Adaptive Server Anywhere 9.0')
IF answer = -1 THEN
Messagebox('错误','应用程序无法设置ODBC DATA SOURCE名称,系统将终止运行!',StopSign!)
RETURN
END IF
//步骤2:
//获取应用程序的安装路径(ybinput为应用程序安装到用户计算机上后在注册表中注册的应用程序名,yibiao.db为应用程序的数据库名,与应用程序在同一目录下,anysql为数据源名)
ansapp = ReGIStryGet("KYEY_LOCAL_MACHINE\Software\Microsoft\windo ws\CurrentVersion\App
Paths\ybinput","Path",RegString!,app_path)
IF ansapp = -1 THEN
Messagebox('错误','应用程序无法获取安装路径名,系统将终止运行!',StopSign!)
RETURN
ELSE
db_path=app_path+'yibiao.db'
END IF
/*备注
如果当前计算机已经安装了Adaptive Server Anywhere 9.0驱动程序可以跳过步骤1和步骤2,直接使用以下三条语句
db_path='c:\pbtest1\database.db'
ls_driver='c:\pbtet1'+'\dbodbc9.dll'
ls_start='c:\pbtest1'+'\dbeng9.EXE'
*/
//步骤3:
//设置ODBC.INI的细节
answer1 = ReGIStrySet('HKEY_LOCAL_MACHINE\Software\odbc\odbc.ini\a nysql','driver',RegString!,ls_driver)
answer2 = ReGIStrySet('HKEY_LOCAL_MACHINE\Software\odbc\odbc.ini\a nysql','start',RegString!,ls_start)
3页。