最近要做一个Excel-based的轻量级front end,需要连接到一个Sybase数据库进行查询操作。用的是Sybase ASE 12.5.3,按说12.5之后应该可以直接用OLE DB Provider来连,于是很快就把以前用来连MS SQL Server的VBA code拿来改改就用上了。不过测试的时候死或连不过去,提示“Invalid server”。最后google了半天才找到罪魁祸首,原来是connection string的问题。
原先的connection string如下:
Provider=Sybase.ASEOLEDBProvider;Srvr=myASEserver,5000;Catalog=myDataBase;User Id=myUsername;Password=myPassword;
后来改成
Provider=Sybase.ASEOLEDBProvider;Server Name=myASEserver,5000;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
就没问题了。
其实也就是改了下property name. 按照 connectionstrings.com 的说法, 两种写法应该都可以,只不过“Some reports on problem”using the first one.居然就被我碰上了。不过让人觉得搞笑的是,suppose “connection string”这个东东应该是协议规定好了的才对啊,不知道为什么会搞到有的灵有的不灵,查了半天Sybase的用户手册也没查出个所以然来。等什么时候有精神再来探究一下吧。
链接:ConnectionString.com 查询多种数据库各种连接方法的一个好地方