`
Ben.Sin
  • 浏览: 234117 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

PB脚本注册数据源(ASA的打包说明)

    博客分类:
  • PB
阅读更多

PB及ASA的打包说明

一.安装步骤

一般地说发布一个PB应用除应用程序部件本身外,还应该包含如下文件及相关操作:
1. PowerBuilder运行时动态链接库( Runtime Library )。
2. 数据库接口:一方面包括PB提供的数据库专用接口或ODBC接口程序,另一方面包括不同数据库厂商提供的ODBC数据库驱动程序。
3. ODBC数据源的配置。

二.PowerBuilder运行时动态链接库( Runtime Library )。
不同版本的PB所需要的运行时动态链接库文件不尽相同,但库名有相似的地方,这些DLL都必须包含在应用程序目录或系统目录当中:

PB6.5所需文件:
必需 PBVM60.DLL PowerBuilder 虚拟机
可选 PBDWE60.DLL DataWindow 数据窗口引擎
可选 PBRTC60.DLL 超文本控件
可选 PBTRA60.DLL 数据库访问跟踪
可选 PBODB60.DLL PB的ODBC接口
可选 PBIN760.DLL INFORMIX 接口
可选 PBMSS60.DLL Microsoft SQL Server接口
可选 PBSYC60.DLL Sybase SQL Server接口
可选 PBO7360.DLL/PBO7260.DLL Oracle Version接口

PB7.0所需文件:
必需 PBVM70.DLL PowerBuilder 虚拟机
必需 LIBJCC.DLL PowerBuilder 库管理
可选 PBDWE70.DLL DataWindow 数据窗口引擎
可选 PBRTC70.DLL 超文本控件
可选 PBTRA70.DLL 数据库访问跟踪
可选 PBODB70.DLL PB的ODBC接口 
可选 PBIN770.DLL INFORMIX 接口
可选 PBMSS70.DLL Microsoft SQL Server接口
可选 PBSYC70.DLL Sybase SQL Server接口
可选 PBO7370.DLL/PBO8470.DLL Oracle Version接口

PB8.0所需文件:
必需 PBVM80.DLL PowerBuilder 虚拟机
必需 LIBJCC.DLL PowerBuilder 库管理
可选 PBDWE80.DLL DataWindow 数据窗口引擎
可选 PBRTC80.DLL 超文本控件
可选 PBTRA80.DLL 数据库访问跟踪
可选 PBODB80.DLL PB的ODBC接口 
可选 PBIN780.DLL INFORMIX 接口
可选 PBMSS80.DLL Microsoft SQL Server接口
可选 PBSYC80.DLL Sybase SQL Server接口
可选 PBO7380.DLL/PBO8480.DLL/PBO9080.DLL Oracle Version接口
以上文件可以在C:\Program Files\Sybase\Shared\PowerBuilder取得。


三. SQL Anywhere ODBC数据库驱动程序。

SQL Anywhere 5.0:
DBTL50T.DLL 数据库工具
DBL50T.DLL 数据库接口
WODBC.HLP 帮助文档
WOD50T.DLL ODBC 驱动
WL50ENT.DLL 英文字符串
WTR50T.DLL ODBC翻译
DBENG50.EXE 数据库引擎

SQL Anywhere 6.0:
DBL60T.DLL,WODBC.HLP,WOD60T.DLL,WL60ENT.DLL,WTR60T.DLL,DBENG60.EXE

SQL Anywhere 7.0:
DBODBC7.DLL,DBLIB7.DLL,DBWTSP7.DLL,DBLGEN7.DLL,DBODTR7.DLL,DBENG7.EXE

四. ODBC数据源配置。
在包含以上文件之后,还必需对使用ODBC数据库方式的应用进行ODBC数据源的配置,以便在安装完毕后应用程序可以直接访问用户数据源。
下面以使用SQL Anywhere 5.0数据库创建的用户数据库为例来说明如何使用数据源管理器进行ODBC的手工配置及如何在安装程序中自动修改系统注册表,其他数据库可以参考SQL Anywhere 5.0进行操作。

1.使用数据源管理器配置用户数据源。
1.1. 安装SQL Anywhere数据库驱动程序,使数据源管理器中的"ODBC驱动程序"页增加一行SQL Anywhere的驱动说明。
1.2. 在"用户DSN"一页选择"添加",然后选择SQL Anywhere数据源,出现数据源的配置信息表后,将数据源名(Data Source Name),数据库名(Database File),用户ID号(User ID),用户密码(Password)等信息添齐,选择"OK"确认,此时在"用户数据源"的窗口中就会增加用户的数据库的ODBC驱动,选择"确认"后退出数据源管理器。

进行以上两步以后重新启动系统,用户就可以在运行应用程序后使用SQL Anywhere数据库。
2. 修改系统注册表配置用户数据源。
(以下注:C:\YourApp为用户应用程序目录,C:\YourApp\Sqlany50为应用程序包含的SQL Anywhere数据库驱动文件目录,YourDB.DB为用户数据库。)

在HKEY_LOCAL_MACHINE\software\ODBC\ODBC Drivers下,增加字符串键值:
Sybase SQL Anywhere 5.0 = "Installed"

在HKEY_LOCAL_MACHINE\software\ODBC\Sybase SQL Anywhere 5.0下,增加字符串键值:
Driver = "C:\YourApp\Sqlany50\WOD50T.DLL"
Setup = "C:\YourApp\Sqlany50\WOD50T.DLL"

在HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Source下,增加字符串键值:
TestDB = "Sybase SQL Anywhere 5.0"

在HKEY_CURRENT_USER\Software\ODBC\ODBC.INI下,增加主键:TestDB,并分别加入键值如下:
Autostop = "yes"
Databasefile = "C:\YourApp\YourDB.DB
Databasename = "TestDB"
Driver = "C:\YourApp\Sqlany50\WOD50T.DLL"
PWD = "sql"
Start = "C:\YourApp\Sqlany50\dbeng50.exe -d -c1024 -Q"
UID = "dba"

在用户的安装程序中将以上步骤加入,可以使用户的应用程序在不必安装SQL Anywhere数据库驱动下,也能直接访问用户数据源,从而实现用户应用程序的独立发布。

integer rc
string ls_dir,is_dbfile,is_datasource
ulong ls_buf
is_datasource="graduate"
ls_buf=256
ls_dir=space(ls_buf)
GetCurrentdirectoryA(ls_buf,ls_dir)
is_dbfile=ls_dir+'\graduate.db'
rc=profileint("first.ini","start","first",0)

if rc=1 then
if RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+"Adaptive Server Anywhere 7.0","Driver",RegString!,"dbodbc7.dll")=1 then
    messagebox("恭喜你","数据源已注册成功!")
end if
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+"Adaptive Server Anywhere 7.0","Setup",RegString!,"dbodbc7.dll")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources","graduate",RegString!,"Adaptive Server Anywhere 7.0")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"Driver",RegString!,"dbodbc7.dll")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"UID",RegString!,"dba")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"PWD",RegString!,"sql")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"DatabaseFile",RegString!,is_dbfile)
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"AutoStop",RegString!,"Yes")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"Integrated",RegString!,"No")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"DatabaseName",RegString!,"graduate.db")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"Debug",RegString!,"No")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"DisableMultiRowFetch",RegString!,"No")
setprofilestring("first.ini","start","first","0")
end if

只需要把datasource等几个地方改一下就可以了
其中的graduate是我的数据库名
if RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+"Adaptive Server Anywhere 7.0","Driver",RegString!,"dbodbc7.dll")=1
这一句就是driver的配置

上述连接为代码实现,下面的是由打包程序实现的注册表项
有两中连接
1.本地连接
[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ASA 8.0 Sample]
"Driver"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\win32\\dbodbc8.dll"
"Description"="Adaptive Server Anywhere Sample Database"
"UID"="dba"
"PWD"="sql"
"EngineName"="asademo8"
"DatabaseFile"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\asademo.db"
"Start"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\win32\\dbeng8.exe -c 8m"
"AutoStop"="yes"
START项有许多参数,“-C 8M”设置初始高速缓存大小8M,一般建议64M。“-Q”安静模式 — 取消输出,就是系统拖盘中不显示数据库引擎图表。‘-D’禁用异步 I/O [Windows NT 、NetWare]。‘-M’对于所有数据库,在每个检查点之后截断事务日志。

2.网络连接

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ASA 8.0 Client Sample]
"Driver"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\win32\\dbodbc8.dll"
"Description"="Adaptive Server Anywhere Sample Client"
"UID"="dba"
"PWD"="sql"
"EngineName"="asademo8"
"CommLinks"="TCPIP{}"
"AutoStop"="yes"

注意:如果你要在WINDOWS的ODBC中看到的分发的数据库,还要以下的信息
[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]
"ASA 8.0 Client Sample"="Adaptive Server Anywhere 8.0"(网络连接)
"ASA 8.0 Sample"="Adaptive Server Anywhere 8.0"(本地连接)

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0]
"Driver"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\win32\\dbodbc8.dll"
"Setup"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\win32\\dbodbc8.dll"

补充:

配置以上数据库链接之后,还需要注册exe文件和相关PB运行类库。

PB提供了打包所需运行库的功能,这个可以在开始菜单里面找到。

生成运行库之后,建议安装到相同的目录,即<%application dir%>

然后添加以下两个注册表设置

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\<%application.exe%>

Default="<%application dir%>\<%application.exe%>"

Path="<%PB运行库%>"

这个步骤相当于安装应用程序。到这里,就完成了应用程序的所有配置了。

 

ASA 8.0所需运行库

dbctrs8.dll

dbeng8.exe

dblgen8.dll

dbodbc8.dll

dbserv8.dll

(如有问题欢迎指正)

分享到:
评论

相关推荐

    ASA数据库自动注册数据源,在PB开发实现ASA数据库自动注册数据源,值得拥有!

    本教程将详细讲解如何在PowerBuilder环境中实现ASA数据库的自动注册数据源,从而简化开发流程,提高效率。 首先,我们需要理解ASA数据库自动注册数据源的概念。在PB开发中,通常需要手动创建数据源来连接数据库,这...

    PB及ASA的打包说明

    【PB及ASA的打包说明】主要涉及的是在PowerBuilder(PB)环境中,如何打包和部署应用程序,特别是针对PB 6.5、7.0、8.0版本以及ASA(SQL Anywhere)数据库的相关组件和设置。以下是详细的解释: 1. **安装步骤**: ...

    PB运行环境及通过ole db连接asa8,asa11所用dll

    “ole db”是Object Linking and Embedding, Database的缩写,它是微软的一种数据访问接口,允许应用程序通过OLE技术访问各种数据源,包括数据库、文件系统等。OLE DB提供了一种统一的API,使得开发者可以不关心具体...

    用pb9.0+asa写的学籍管理系统

    - `student.dsn`:数据源名称(DSN)文件,用于连接到ASA数据库,包含了连接参数如服务器地址、数据库名等。 - `student.ini`:可能是配置文件,存储了系统设置或连接信息。 - `3.jpg`、`2.jpg`、`1.jpg`、`4.jpg...

    mdf转db(pb asa)

    标题中的“mdf转db(pb asa)”指的是将SQL Server的数据库日志文件(.mdf)转换为PowerBuilder的数据源文件(.db),后者通常用于PowerBuilder应用程序中。在这个过程中,我们需要理解这两种数据库文件格式的特性以及...

    pb数据窗口更新多个数据库表

    - **数据窗口的数据源**:数据窗口可以从一个或多个表获取数据,当涉及到多个表时,数据窗口实际上是从这些表通过某种连接方式(如JOIN)形成的“视图”中获取数据。 - **默认行为**:PB默认情况下不允许直接通过...

    PB 试题及答案(PB要点,简答题,基础题,带答案)

    PB 支持五种数据源:Quick Select、SQL Select、Query、External 和 Stored Procedure。数据窗口的特点是可以方便的显示和编辑数据,并且可以与数据库进行交互。使用数据窗口对象的一般方法是首先创建数据窗口对象,...

    PB试题及答案

    - **数据源**: PB支持多种数据源,包括QuickSelect、SQL Select、Query、External和Stored Procedure。 - **数据处理机制**: 数据窗口在处理数据时会使用四个缓冲区:主缓冲区、删除缓冲区、过滤缓冲区和原始缓冲区...

    pb9.0编写学生成绩管理系统毕业设计

    在PB9.0中,通过使用ODBC接口建立Adaptive Server Anywhere (ASA)数据库。具体步骤如下: 1. **创建数据库**:在指定目录下创建数据库文件。 2. **创建表**:根据需求创建多个表,包括班级表、学生基本信息表、课程...

    PowerBuilder 10.5

    - **数据源适配器**:提供各种数据库驱动,如ADO.NET、OLE DB等,用于灵活的数据访问。 4. **用户界面设计** - **窗口和控件**:包括按钮、文本框、列表框、菜单等标准控件,以及自定义控件的创建和使用。 - **...

    北京中科信软PowerBuilder培训01基础

    4. DataWindow对象,实现数据的显示和处理,访问后台数据库,支持多种数据源和显示风格。 5. 用户对象,用于封装复杂的功能和界面元素。 6. Menu和MDI,创建菜单系统和多文档界面应用程序。 7. Pipeline对象,用于...

Global site tag (gtag.js) - Google Analytics