77家的会客2010

连接远程Sybase ASA数据库的连接字符串
Weather:晴转多云 西风4-5级转西南风4-5级 (0~6)℃

Sybase数据库的资料真的非常少,不管是百度还是GOOGLE,太难找到有用的信息了。Sybase自带的帮助也乱得要命,怪不得要被M$买下来赚钱,并且看人家SqlServer发展得多好呀。不说这个了,俺在网上找得辛苦,但找着了就要造福大众。

俺以前用的连接字符串是:

 Provider=ASAProv;Data source=DBName;Uid=dba;pwd=password;

今天想要把数据库放到别的主机上,那么就得远程连接数据库了,这个问题在其它的数据库根本就不是个问题,而在Sybase就。。。不过还好皇天不负有心人,让我给找着了。

Provider=ASAProv;eng=DBName;Uid=dba;pwd=password;commlinks=tcpip(host=192.168.1.4:port=2638);

Provider=ASAProv.90;Eng=dx2004;Uid=sa;Pwd=123456;Links=tcpip(Host=192.168.101.202:port=2638);

网上搜到的99.99%的都没有commlinks=tcpip(host=192.168.1.4:port=2638)这句,这句才是连接远程Sybase数据库的关键。

另外eng代表engine,就是数据库引擎为你的数据库名称。

历史上的今天: [2006/12/05]安全第一 预防为主,一定要提高自我防范意识
[2005/12/05]雪,之韵,之恋,之……

[连接远程Sybase ASA数据库的连接字符串]的回复

hushlight 于 2013-02-19 08:22:29 发表 | IP:222.128.191.*
抱歉打扰,我有个疑问,现在有两台机器,A(什么都没有),B(装有ASA数据库),现在想远程从A连接B上的数据库
cnStr = "Provider=ASAProv;eng=xxx;dbn=xxx;Links=tcpip(host=10.200.36.16;port=2638)" ;

               cn.ConnectionString = cnStr;
               cn.Open( null, UID, PWD, 0);

如果用TCPIP连接, 程序在B机器上好用,但在A上会显示找不到Unhandled Exception: System.Runtime.InteropServices.COMException: Database server not found
如果用Links=ALL(host=10.200.36.16;port=2638), 程序在B机器上好用,但在A上会显示显示找不到Unhandled Exception: System.Runtime.InteropServices.COMException: Invaild User ID or Password

请问我在A机器上是不是需要做什么配置?比如建立ODBC连接之类的
柠檬园主 2013-02-19 10:01:31 回复:

那你试试 commlinks=tcpip(host=192.168.1.4:port=2638) 这个呢?

hushlight 于 2013-02-19 10:23:57 发表 | IP:222.128.191.*
一样的,Links是commlinks缩写,ASA支持用缩写。另外,IP和port之前应该是;,“:“是不行的。
你在A机器上要先建立ODBC连接吗?
柠檬园主 2013-02-19 23:44:41 回复:

很久以前用的,现在都记不住了,不过好像是没用ODBC。你是不是两台机器之间有防火墙,然后从A连B的时候端口被防火墙挡了呀?

hushlight 于 2013-02-20 00:22:44 发表 | IP:114.247.110.*
防火墙都关掉了。目前想从A建立到B的ODBC链接,找到server后verifying server name就失败了。但是在B机器上同样的servername肯定是可以找到的

13:21:21 Application information:
13:21:21 "HOST=EMMA-PC;OS=Windows NT 6.1 Build 7601 Service Pack 1;PID=0x12c4;THREAD=0xf58;EXE=C:\Windows\SysWOW64\odbcad32.exe;VERSION=9.0.2.2451;API=ODBC;TIMEZONEADJUSTMENT=480"
13:21:21 Attempting to connect using:
UID=GhostSolution4aQ;PWD=********;DBF=\\10.200.36.16\db\SYMANTECGHOST.DB;ENG=SYMANTECGHOST;ASTOP=NO;INT=NO;DBG=YES;LOG=C:\temp.log;DMRF=NO;LINKS=TCPIP{HOST=10.200.36.16;PORT=2638};ASTART=NO;COMP=NO
13:21:21 Attempting to connect to a running server...
13:21:21 Attempting TCPIP connection (no asasrv.ini cached address)

13:21:21 Looking for server with name symantecghost
13:21:21 Trying to find server at address 10.200.36.16
13:21:21 Found server, verifying server name
13:21:21 TCP/IP link, function recv(), error code 0
4#   hushlight 于 2013-02-20 00:30:57 发表 | IP:114.247.110.*
是否远程机器的DBname和本地不同?
5#   hushlight 于 2013-02-20 02:59:09 发表 | IP:114.247.110.*
找到原因了,公司用的缩水版ASA,不支持remote access %>_<% 谢谢啦
柠檬园主 2013-02-21 21:49:05 回复:

问题解决就好呀,呵呵

Post a Comment~