祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 9661|回复: 5

用ASA8.0做服务器,在没有安装PB和AHA的客户机器上运行PB程序的攻略

[复制链接]

用ASA8.0做服务器,在没有安装PB和AHA的客户机器上运行PB程序的攻略

[复制链接]
bigfrog

主题

0

回帖

2179

积分

金牌会员

积分
2179
贡献
在线时间
小时
2015-3-11 20:16:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
在论坛里也混了一个月了,得到很多帮助,也养成了自己努力去解决问题的习惯。
这里将网络上很多人都想问的,还有很多攻略写的都很难懂的问题,由我这个初学者写一下,我想会比较的易懂,当然,我也希望高手们能提成宝贵意见
还有能在我的基础上更加深入去为这个问题做更好的总结,谢谢

第一步:用AHA8.0建立数据库
这个不是很难,只是我走了很多弯路 PB 8.0将Sybase Central 4.1藏了起来,我是安装了7.0才发现有这个东西的
可以用它来建立数据库,具体在你的Sybase文件夹的Shared\Sybase Central 4.1里面

顺便提一下,建立好的数据库永ODBC建立数据源后,在PB里打开后我们发现有些列的属性搞错了,我就老搞错NULL
刚开始都要重新建一次表,
后来发现,在Sybase Central 里同样连接这个数据源可以对表里的任何属性进行修改,非常的方便

center.jpg
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
bigfrog 楼主

主题

0

回帖

2179

积分

金牌会员

积分
2179
贡献
在线时间
小时
2015-3-11 20:25:43 | 显示全部楼层
第二步
将建立的数据库复制或者移到你想做服务器的电脑上,并在此电脑上安装PB,这个要老老实实的安装
特别是安装到anywhere的licensed   seats一定要从1改为多一些,20以上吧
然后编写BAT文件
内容为:
@echo off
dbsrv8.exe f:\customer\HF_sys.db -n HF -x tcpip -c16m -q -o f:\customer\test.log
exit


这里的f:\customer\HF_sys.db是我数据库的地址
HF是我数据源名
f:\customer\test.log 记录下的运行信息
tcpip 设置为TCPIP服务器连接方式
然后将这个文件复制到windows的启动里面,就可以开机运行服务器了


网上还要写很多的,我也不是很懂,不过这里BAT文件运行以后,CMD窗口就是关不了不知道是什么问题
请高手指点


共享共进共赢Sharing And Win-win Results
bigfrog 楼主

主题

0

回帖

2179

积分

金牌会员

积分
2179
贡献
在线时间
小时
2015-3-11 20:38:47 | 显示全部楼层
第三部 无安装PB和AHA8的客户端的连接的建立
PB编程的事情我就略过了,这里只说怎么连接上刚才建立的AHA服务器


这里确实要解决3个问题
1.PB程序运行库
2.安装AHA8.0的驱动程序
3.数据源的注册




先看1
这个简单,网上找的的,运行这个就可以生成一个MSI程序,将其和生成的程序复制到客户机运行安装即可建立连接PB运行库


运行库.jpg
共享共进共赢Sharing And Win-win Results
bigfrog 楼主

主题

0

回帖

2179

积分

金牌会员

积分
2179
贡献
在线时间
小时
2015-3-11 20:56:30 | 显示全部楼层
2.安装AHA8.0的驱动程序
3.数据源的注册


这里附上需要的AHA驱动程序,其实就几个,为了安全我将网上说的PB的也放了进去,我怀疑将AHA8里面的win32全端最简单
这个其实可以一起来
在你的应用的open事件里加入以下内容

string ls_drivervalue
string ls_source
string ls_driverpath="HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers"
string ls_Sourcespath="HKEY_CURRENT_USER\Software\ODBC\ODBC.INI"
string appdir
appdir="F:\Customer\runtime\dbodbc8.dll" //驱动程序地址
string Sybase_name
Sybase_name="HF"  //数据源名称
RegistryGet(ls_driverpath,"Adaptive Server Anywhere 8.0",regstring!,ls_drivervalue)

if ls_drivervalue<>"Adaptive Server Anywhere 8.0" then // 注册AHA 8.0
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers","Adaptive Server Anywhere 8.0",RegString!,"Installed")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Translators","Adaptive Server Anywhere 8.0 Translator",RegString!,"Installed")
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0","Driver",RegString!,appdir)
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0","Setup",RegString!,appdir)
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0 Translator","Driver",RegString!,appdir)
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0 Translator","Setup",RegString!,appdir)
end if

//建立数据源 如果没有数据源建立 有的话 连接
RegistryGet(ls_Sourcespath,"HF",regstring!,ls_source)

if lls_source<>"HF" then // 是否数据源存在
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources",Sybase_name,RegString!,"Adaptive Server Anywhere 8.0")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","Driver",RegString!,appdir)
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","UID",RegString!,"dba")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","PWD",RegString!,"sql")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","Driver",RegString!,appdir)
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","Autostop",RegString!,"Yes")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","compress",RegString!,"No")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","EngineName",RegString!,"HF")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","Integrated",RegString!,"No")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","CommLinks",RegString!,"TCPIP{HOST=192.168.0.104}") //这里的IP地址是服务器的IP地址
end if

SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=HF;UID=dba;PWD=sql'"
connect;
open(w_main)


基本上这样就可以实现连接并正常运行了
但还是有很多问题
1.两个if判断语句好像在存在的情况下也是写入,并没有跳过,不知道是哪里写错了
2.这里要将数据源名称和驱动的设置成可变是最好的,我这里过于简单,但容易懂一些
3.关于注册表的写法可能和别人不一样,我是自己一个个手动建立后再用程序写上的,还有如果运行后注册表里没有AHA8的文件夹出现,建议重启一次即可
4.没有数据库连接失败的提示,要增加

基本上就这些,也是一次次摸索的过程,还有大大们的帮助,希望能抛砖引玉,多多指点
谢谢



驱动.jpg
共享共进共赢Sharing And Win-win Results
bigfrog 楼主

主题

0

回帖

2179

积分

金牌会员

积分
2179
贡献
在线时间
小时
2015-3-11 20:59:39 | 显示全部楼层
自己顶一个,EXHZ 帮我指点一下吧,最好能多多补充

点评

写的非常详细~~很实用。 我以前也用过ASA做服务器,在局域网内性能也还好。 只是,既然是服务器了,在开发时,要特别注意,有很多地方跟单机开发不一样了。  详情 回复 发表于 2015-3-11 21:12
共享共进共赢Sharing And Win-win Results
ehxz

主题

0

回帖

58万

积分

管理员

积分
588431
贡献
在线时间
小时
2015-3-11 21:12:01 | 显示全部楼层
bigfrog 发表于 2015-3-11 20:59
自己顶一个,EXHZ 帮我指点一下吧,最好能多多补充

写的非常详细~~很实用{:soso_e179:}。
我以前也用过ASA做服务器,在局域网内性能也还好。
只是,既然是服务器了,在开发时,要特别注意,有很多地方跟单机开发不一样了。
共享共进共赢Sharing And Win-win Results
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

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

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-11-21 16:35 , Processed in 0.063052 second(s), 11 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表