hy5790624 发表于 2008-12-2 10:14:03

数据库脱离出来,单独运行

创建好一个数据库,拿到别的机子上用(这台机子是个没有安装sybase SQL Anywhere),可否直接连接,还是需要什么其他的?

ehxz 发表于 2008-12-2 12:02:56

没装不行的。至少几个文件拷过去。

ribut9225 发表于 2008-12-8 10:44:20

一、可以脱离SYBASE ASA安装使用
二、使用方法是通过ODBC连接数据库
三、通过写注册表来完成ODBC的参数设置

写注册表如下:[注:为PB代码]
[转帖]PB及ASA的打包说明   
   
   
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.本地连接   
   
"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   。‘-M’对于所有数据库,在每个检查点之后截断事务日志。   
2.网络连接   
   
"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中看到的分发的数据库,还要以下的信息   
   
"ASA   8.0   Client   Sample"="Adaptive   Server   Anywhere   8.0"(网络连接)   
"ASA   8.0   Sample"="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"   
该注册项为你分发DLL的实际路径。   

还要解释   
"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\"   
添加   
键名:"Adaptive   Server   Anywhere   8.0   "   值:"Installed"   
就注册了


重点注意事项:在生成ASA数据库时,一般不选择生成事务文件。如果生成事务文件的话,想在其他机器上运行,必须重新生成事务,要么就是数据库的绝对路径和开发机器上的路径保持一致

newease 发表于 2009-3-10 10:12:37

如果将用户名和密码保存到注册表中要注册要改成密文,不然的话。。。。
页: [1]
查看完整版本: 数据库脱离出来,单独运行

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com