| 我们知道,PB的应用程序脱离开PB环境,安装到目的计算机后,除了要安装相应数据库或者数据库本地连接以外,还要创建应用程序需要的数据源。建立数据源可以通过控制面板的odbc管理程序操作,那么最好的方法当然是由应用程序运行时自动判断和进行数据源设置。我们可以通过对windows的注册表操作达到我们需要的结果。PB提供了两个关于注册表的函数,分别是:
| RegistryGet(key,valuename,valuetype,valuevariable)
功能:获得系统注册表的值(对macintosh和unix无效)
参数说明:
key-要获得的键值所在系统注册表中的位置。
valuename-要取值所在的主键名称
valuetype-取值类型。枚举类型。
Regstring! 字符串
RegExpandString!
RegBinary!
ReguLong!
RegLink!
RegMultiString!
valuevariable-存储获取的串值
返回:1--成功 -1-不成功 |
| RegistrySet ( key, valuename,
valuetype, value )
功能:在注册表中设置主键和串值。如果主键或者串值不存在, RegistrySet()函数建立按要求建立主键或者串值。
参数说明同RegistryGet()
|
由此我们可以通过registryget()函数判断是否安装了对应的数据库引擎,并获取引擎程序的安装路径,通过运行registryset()函数对注册表进行设置,增加数据源。我们以sybase
sql anywhere 5.0为数据库引擎,说明程序的算法:
1、读取"HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Sybase
SQL Anywhere 5.0" 判断是否已经安装sybase sql anywhere 5.0,如果已经安装则获得sql
anywhere的安装路径。
2、通过读取 "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI"下的主键来判断对应数据源是否存在。
3、利用registryset()增加 "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC
Data Sources"的串值来增加数据源
4、增加"HKEY_CURRENT_USER\Software\ODBC\ODBC.INI" 主键(主键名称即为数据源名)同时设置主键下的串值。
通过这种方法,我们可以让pb应用程序自动注册数据源,而无须手工设置,从而避免了用户不会操作引起的麻烦。这部分程序,我已经做成了函数,并更新了以前的blob存储数据的演示程序使其能够自动注册数据源pic,欢迎大家下载!
说明:提供了一个pb应用程序自动注册数据源的函数,这样可以免去手工设置数据源的麻烦。
程序为EXE文件,执行后安装到c:\blob文件夹下。
进入pb环境运行,程序即自动添加一个pic数据源本程序是在以前的blob演示程序的基础上加以改造的,所以也可用来学习blob存储。
该程序用pb6.5在windows98下编辑、调试。数据库采用sybase的本地数据库Sybase sql anywhere5.0,
文件大小304K,
作者:范泽亮 来源:http://pbstudy.top263.net/author.html
|