Microsoft SQL Server 2000连接Sybase Adaptive Enterprise Server 12.5

一、OLE方式链接
一般的在ADO连接串生成工具中生成的串如下:
Provider=Sybase.ASEOLEDBProvider.2;Initial Catalog=数据库;Password=密码;User ID=用户名;Data Source=服务器;Extended Properties=””;Server Name=服务器;Network Protocol=Winsock;Server Port Address=端口;HA Server Name=””;HA Server Port Address=””;Character Set=””;Language=””;Application Name=””;Optimize Prepare=Partial;Select Method=Direct;Raise Error Behavior=MS Compatible;Print Statement Behavior=MS Compatible;Extended ErrorInfo=FALSE;Stored Proc Row Count=Last Statement Only;WorkStation ID=””;Row Cache Size=50;Enable Quoted Identifiers=0;Packet Size=1;Default Length For Long Data=1024;UseSybaseLDAP=False;SybaseLDAPURL=””;SybaseServerName=389;UseLDAPHAServer=0;Use SSL=0;Trusted Root File Name=””;Interfaces File=””;Interfaces File Server Name=””;EnableSPColumnTypes=True;TruncateTimeTypeFractions=1
实在是太长了。

在这篇文章中我们可以得到一个短串:
Sybase ASE OLE DB Provider 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;

更多的连接串信息可以参考 ConnectionStrings
二、视图方式透过访问
实验内容:
1. 采用查询建立的视图
create view q_testtable as select * from Q.qthdsj.dbo.testtable

select * from Q.qthdsj.dbo.testtable

select * from q_testtable

SELECT q_testtable.a1 , q_testtable.a2 FROM q_testtable

select a1, a2 from q_testtable

存在查询返回一条的问题。就是查询应该返回多条,但实际上只返回了一条。如图:

2. 采用openquery建立的视图
create view v_testtable as
select * from openquery (q,’select * from dbo.testtable’)

select a1, a2 from v_testtable

实际上,这个查询应该返回的内容非常多。如图:


问题解决。

三、结论
这个问题是一个实际需要。虽然如果是我来做肯定不用这种方式。好处是显而易见的,你不需要在你的电脑上安装Sybase Client。也不需要导入导出数据。对于客户端,它还没有什么性能压力,压力只存在于Server端。坏处当然也是非常多的。首先是性能一般,甚至如果你的Server性能不怎么样的话还是不要使用了。另外,它的变态设置,以及Sybase驱动的问题影响了配置乐趣。

四、Sybase作为一个当年十分红火的数据库,自从将SQL Server卖出给微软之处走过的路说明,它已经风光不再。SAP的收购难言是忧是喜。因为在这个测试中,Sybase 12.5系列(虽然现在已经是15了,但是还有很多人在用12.5这个版本)的驱动显然问题很多,甚至让我对MySQL和PostgreSQL的感觉又提升了一层。没有良好商业性支持,一个又一个的版本更新也难掩垂暮的老态。多年之后,难道Sybase可言的只有Sybase PowerBuilder和PowerDesigner? 还记得当年一个Sybase的朋友说过一句“做工具,微软怎么比得上PowerBuilder”。斯是当年,今忆垂泪,唏嘘不已。

参考文章:
1. Issue with Sql Server to Sybase linked server using stored procedure

打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注