[转帖]PB及ASA的打包说明
<p>一.安装步骤</p><p>一般地说发布一个PB应用除应用程序部件本身外,还应该包含如下文件及相关操作:<br/>1. PowerBuilder运行时动态链接库( Runtime Library )。<br/>2. 数据库接口:一方面包括PB提供的数据库专用接口或ODBC接口程序,另一方面包括不同数据库厂商提供的ODBC数据库驱动程序。<br/>3. ODBC数据源的配置。</p><p>二.PowerBuilder运行时动态链接库( Runtime Library )。<br/>不同版本的PB所需要的运行时动态链接库文件不尽相同,但库名有相似的地方,这些DLL都必须包含在应用程序目录或系统目录当中:</p><p>PB6.5所需文件:<br/>必需 PBVM60.DLL PowerBuilder 虚拟机<br/>可选 PBDWE60.DLL DataWindow 数据窗口引擎<br/>可选 PBRTC60.DLL 超文本控件<br/>可选 PBTRA60.DLL 数据库访问跟踪<br/>可选 PBODB60.DLL PB的ODBC接口<br/>可选 PBIN760.DLL INFORMIX 接口<br/>可选 PBMSS60.DLL Microsoft SQL Server接口<br/>可选 PBSYC60.DLL Sybase SQL Server接口<br/>可选 PBO7360.DLL/PBO7260.DLL Oracle Version接口</p><p>PB7.0所需文件:<br/>必需 PBVM70.DLL PowerBuilder 虚拟机<br/>必需 LIBJCC.DLL PowerBuilder 库管理<br/>可选 PBDWE70.DLL DataWindow 数据窗口引擎<br/>可选 PBRTC70.DLL 超文本控件<br/>可选 PBTRA70.DLL 数据库访问跟踪<br/>可选 PBODB70.DLL PB的ODBC接口 <br/>可选 PBIN770.DLL INFORMIX 接口<br/>可选 PBMSS70.DLL Microsoft SQL Server接口<br/>可选 PBSYC70.DLL Sybase SQL Server接口<br/>可选 PBO7370.DLL/PBO8470.DLL Oracle Version接口</p><p>PB8.0所需文件:<br/>必需 PBVM80.DLL PowerBuilder 虚拟机<br/>必需 LIBJCC.DLL PowerBuilder 库管理<br/>可选 PBDWE80.DLL DataWindow 数据窗口引擎<br/>可选 PBRTC80.DLL 超文本控件<br/>可选 PBTRA80.DLL 数据库访问跟踪<br/>可选 PBODB80.DLL PB的ODBC接口 <br/>可选 PBIN780.DLL INFORMIX 接口<br/>可选 PBMSS80.DLL Microsoft SQL Server接口<br/>可选 PBSYC80.DLL Sybase SQL Server接口<br/>可选 PBO7380.DLL/PBO8480.DLL/PBO9080.DLL Oracle Version接口<br/>以上文件可以在C:\Program Files\Sybase\Shared\PowerBuilder取得。</p><p><br/>三. SQL Anywhere ODBC数据库驱动程序。</p><p>SQL Anywhere 5.0:<br/>DBTL50T.DLL 数据库工具<br/>DBL50T.DLL 数据库接口<br/>WODBC.HLP 帮助文档<br/>WOD50T.DLL ODBC 驱动<br/>WL50ENT.DLL 英文字符串<br/>WTR50T.DLL ODBC翻译<br/>DBENG50.EXE 数据库引擎</p><p>SQL Anywhere 6.0:<br/>DBL60T.DLL,WODBC.HLP,WOD60T.DLL,WL60ENT.DLL,WTR60T.DLL,DBENG60.EXE</p><p>SQL Anywhere 7.0:<br/>DBODBC7.DLL,DBLIB7.DLL,DBWTSP7.DLL,DBLGEN7.DLL,DBODTR7.DLL,DBENG7.EXE</p><p>四. ODBC数据源配置。<br/>在包含以上文件之后,还必需对使用ODBC数据库方式的应用进行ODBC数据源的配置,以便在安装完毕后应用程序可以直接访问用户数据源。<br/>下面以使用SQL Anywhere 5.0数据库创建的用户数据库为例来说明如何使用数据源管理器进行ODBC的手工配置及如何在安装程序中自动修改系统注册表,其他数据库可以参考SQL Anywhere 5.0进行操作。</p><p>1.使用数据源管理器配置用户数据源。<br/>1.1. 安装SQL Anywhere数据库驱动程序,使数据源管理器中的"ODBC驱动程序"页增加一行SQL Anywhere的驱动说明。<br/>1.2. 在"用户DSN"一页选择"添加",然后选择SQL Anywhere数据源,出现数据源的配置信息表后,将数据源名(Data Source Name),数据库名(Database File),用户ID号(User ID),用户密码(Password)等信息添齐,选择"OK"确认,此时在"用户数据源"的窗口中就会增加用户的数据库的ODBC驱动,选择"确认"后退出数据源管理器。</p><p>进行以上两步以后重新启动系统,用户就可以在运行应用程序后使用SQL Anywhere数据库。<br/>2. 修改系统注册表配置用户数据源。<br/>(以下注:C:\YourApp为用户应用程序目录,C:\YourApp\Sqlany50为应用程序包含的SQL Anywhere数据库驱动文件目录,YourDB.DB为用户数据库。)</p><p>在HKEY_LOCAL_MACHINE\software\ODBC\ODBC Drivers下,增加字符串键值:<br/>Sybase SQL Anywhere 5.0 = "Installed"</p><p>在HKEY_LOCAL_MACHINE\software\ODBC\Sybase SQL Anywhere 5.0下,增加字符串键值:<br/>Driver = "C:\YourApp\Sqlany50\WOD50T.DLL"<br/>Setup = "C:\YourApp\Sqlany50\WOD50T.DLL"</p><p>在HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Source下,增加字符串键值:<br/>TestDB = "Sybase SQL Anywhere 5.0"</p><p>在HKEY_CURRENT_USER\Software\ODBC\ODBC.INI下,增加主键:TestDB,并分别加入键值如下:<br/>Autostop = "yes"<br/>Databasefile = "C:\YourApp\YourDB.DB<br/>Databasename = "TestDB"<br/>Driver = "C:\YourApp\Sqlany50\WOD50T.DLL"<br/>PWD = "sql"<br/>Start = "C:\YourApp\Sqlany50\dbeng50.exe -d -c1024 -Q"<br/>UID = "dba"</p><p>在用户的安装程序中将以上步骤加入,可以使用户的应用程序在不必安装SQL Anywhere数据库驱动下,也能直接访问用户数据源,从而实现用户应用程序的独立发布。</p><p>integer rc<br/>string ls_dir,is_dbfile,is_datasource<br/>ulong ls_buf<br/>is_datasource="graduate"<br/>ls_buf=256<br/>ls_dir=space(ls_buf)<br/>GetCurrentdirectoryA(ls_buf,ls_dir)<br/>is_dbfile=ls_dir+'\graduate.db'<br/>rc=profileint("first.ini","start","first",0)</p><p>if rc=1 then<br/>if RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+"Adaptive Server Anywhere 7.0","Driver",RegString!,"dbodbc7.dll")=1 then<br/>messagebox("恭喜你","数据源已注册成功!") <br/>end if<br/>RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+"Adaptive Server Anywhere 7.0","Setup",RegString!,"dbodbc7.dll")<br/>RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources","graduate",RegString!,"Adaptive Server Anywhere 7.0")<br/>RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"Driver",RegString!,"dbodbc7.dll")<br/>RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"UID",RegString!,"dba")<br/>RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"PWD",RegString!,"sql")<br/>RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"DatabaseFile",RegString!,is_dbfile)<br/>RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"AutoStop",RegString!,"Yes")<br/>RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"Integrated",RegString!,"No")<br/>RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"DatabaseName",RegString!,"graduate.db")<br/>RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"Debug",RegString!,"No")<br/>RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\"+is_datasource,"DisableMultiRowFetch",RegString!,"No")<br/>setprofilestring("first.ini","start","first","0")<br/>end if</p><p>只需要把datasource等几个地方改一下就可以了<br/>其中的graduate是我的数据库名<br/>if RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"+"Adaptive Server Anywhere 7.0","Driver",RegString!,"dbodbc7.dll")=1<br/>这一句就是driver的配置</p><p>上述连接为代码实现,下面的是由打包程序实现的注册表项<br/>有两中连接<br/>1.本地连接<br/><br/>"Driver"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\win32\\dbodbc8.dll"<br/>"Description"="Adaptive Server Anywhere Sample Database"<br/>"UID"="dba"<br/>"PWD"="sql"<br/>"EngineName"="asademo8"<br/>"DatabaseFile"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\asademo.db"<br/>"Start"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\win32\\dbeng8.exe -c 8m"<br/>"AutoStop"="yes"<br/>START项有许多参数,“-C 8M”设置初始高速缓存大小8M,一般建议64M。“-Q”安静模式 — 取消输出,就是系统拖盘中不显示数据库引擎图表。‘-D’禁用异步 I/O 。‘-M’对于所有数据库,在每个检查点之后截断事务日志。</p><p>2.网络连接</p><p><br/>"Driver"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\win32\\dbodbc8.dll"<br/>"Description"="Adaptive Server Anywhere Sample Client"<br/>"UID"="dba"<br/>"PWD"="sql"<br/>"EngineName"="asademo8"<br/>"CommLinks"="TCPIP{}"<br/>"AutoStop"="yes"</p><p>注意:如果你要在WINDOWS的ODBC中看到的分发的数据库,还要以下的信息<br/><br/>"ASA 8.0 Client Sample"="Adaptive Server Anywhere 8.0"(网络连接)<br/>"ASA 8.0 Sample"="Adaptive Server Anywhere 8.0"(本地连接)</p><p><br/>"Driver"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\win32\\dbodbc8.dll"<br/>"Setup"="C:\\Program Files\\Sybase\\SQL Anywhere 8\\win32\\dbodbc8.dll"<br/>该注册项为你分发DLL的实际路径。<br/>---------------------------</p><p>将pb配置的dll靠过去就行。在安装目录下赵一下shared下的pb中的如下文件</p><p>pbvm90.dll 必须。PB虚拟机<br/>libjcc.dll 必须。Jaguar C/C++ Library<br/>pbdwe90.dll datawindow与datastore需要<br/>libjsybheap.dll PB9.0.0需要,PB9.0.1后已不需要<br/>PBDWR90.DLL Web DataWindow support <br/>PBDWRE90.PBD Web DataWindow support <br/>PBXerces90.DLL XML support for DataWindows and DataStores<br/>xerces-c_1_5_1.dll XML support for DataWindows and DataStores <br/>PBJVM90.DLL Java support <br/>PBRTC90.DLL Rich Text support <br/>PBLAB90.INI Label DataWindow presentation-style predefined formats <br/>PBTRA90.DLL Database connection tracing <br/>PBIN990.DLL INFORMIX I-Net 9 <br/>PBMSS90.DLL Microsoft SQL Server 6 and 7 <br/>PBO7390.DLL Oracle 7.3 <br/>PBO8490.DLL Oracle 8.0.x and Oracle8i 8.1.x <br/>PBO9090.DLL Oracle9i <br/>PBDIR90.DLL Sybase DirectConnect <br/>PBSYC90.DLL Sybase Adaptive Server Enterprise CT-LIB <br/>PBSYJ90.DLL Sybase Adaptive Server Enterprise CT-LIB for EAServer deployment only <br/>PBODB90.DLL PowerBuilder ODBC interface <br/>PBODB90.INI PowerBuilder ODBC initialization file </p> 不错,收下了。谢谢楼主 <p>楼住辛苦的</p><p>但愿这个论坛开出一个精华区收藏这样实用的帖子</p><p>最后再做一本手册卖掉</p>
页:
[1]