论文部分内容阅读
摘要:文章介绍了基于SQL Server的链接服务器对Sybase数据库的访问,并结合具体应用介绍了这种方法的实现过程。关键词:SQL Server;链接服务器;Sybase
中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)23-5541-04
SQL Server是由美国Microsoft公司开发的,是一个关系数据库管理系统。它最初是由Microsoft和Sybase与Ashton-Tate三家公司共同开发的,在1988年推出了第一个OS/2版本。后来,Microsoft专注于开发推广SQL Server的Windows NT版本,并不断地进行版本更新,SQL Server已逐渐发展成为被用户广泛使用的四大数据库管理系统之一,现在普遍使用的SQL Server数据库的版本有:SQL Server 2000,SQL Server 2005,SQL Server 2008。
笔者在开发公司的生产管理系统时,是用Delphi6 SQL Server 2000来实现的,系统已经稳定运行了六年多。在此期间,根据用户的需要进行了不断的完善和功能扩充。随着公司对系统整合的推进和满足生产管理的需要,公司的各个管理系统要进行数据交换,实现数据共享。而其中的采购管理系统的数据库是Sybase数据库,如果要在前台访问需要安装很多个Sybase客户端,实现起来非常麻烦,如果能在服务器端进行访问,不需要改变用户客户端的配置来实现就是一个比较好的选择。
该文就是讲述如何在SQL Server数据库端来实现对Sybase数据库访问的方法,并以公司生产管理系统的具体应用为例做了具体的阐述,对于广大使用SQL Server进行开发的人员具有一定的指导意义。
1工作原理
SQL Server对异构数据库的访问是通过分布式查询来实现的。SQL Server提供了链接服务器用于分布式查询异构数据库。通过链接服务器可以链接到Oracle、Sybase、DB2、SQL Server等大型关系数据库,也可以连接到Access、Excel等文件数据库,甚至可以连接到目录服务(AD)、索引服务等。要链接到一种数据库需要使用相应的接口。微软为很多数据库提供了驱动接口,所以可以直接使用,但是对于没有提供驱动的数据库比如Sybase,则需要结合使用开放式数据库连接(ODBC)应用编程接口(API)和Microsoft分布式事务协调器(MS DTC)来实现。
2实现对Sybase数据库的访问
如果要对Sybase数据库的访问,需要在每个访问Sybase数据库的用户的计算机上安装Sybase客户端,如果用户的使用量比较大的话,就给应用程序的安装、使用和维护带来极大的不便。我们现在通过在SQL Server数据库服务器上安装Sybase客户端,通过在SQL Server数据库上创建链接服务器来实现从SQL Server到Sybase的访问,原来的生产管理系统用户的客户端环境不需要作任何的改变。下面具体介绍实现的过程。
2.1安装Sybase客户端
在SQL Server数据库服务器上安装访问Sybase的客户端,配置连接Sybase数据库服务器的连接参数,并测试连接是否成功。
图2
如上图所示,首先在客户端添加一个需要连接的Sybase数据库服务器,然后设置此服务器的IP地址和端口号,设置完成后通过Ping命令测试能否连接成功。
2.2配置ODBC数据源
在SQL Server数据库服务器上打开【管理工具】【数据源(ODBC)】,配置ODBC数据源。在【用户DSN】和【系统DSN】的标签上都可以进行添加,可根据具体的连接情况进行测试选择。如果在驱动程序的选择列表中,没有出现“Sybase System 11”,则是因为在Sy base客户端安装时没有选择“ODBC Driver”组件。
图3
需要注意的是:在图4的【Connection】标签页的Charset处应填上“cp850”,以免查询返回的数据因为字符集的不匹配而出现乱码的情况。
2.3建立链接服务器
在SQL server企业管理器中,新建链接服务器,设置连接参数,如图5所示。设置完成后,在新建的链接服务器中单击表或视图,如果能正确显示表名或视图名,则链接服务器配置成功。
图5
2.4实现对Sybase数据库的查询
链接服务器创建好后,可以通过OPENQUERY()函数来实现对Sybase数据库的访问。OPENQUERY()函数的使用就是在指定的链接服务器上执行的一个直接传递查询,就像在查询的FORM字句中引用表名那样引用。依据OLE DB提供程序的能力,还可以将OPENQUERY()函数引用为INSERT、UPDATE或DELETE语句的目标表。
使用语法:OPENQUERY ( linked_server ,’query’ )
参数释义:linked_server,一个标识符,表示链接服务器的名称。’query’在链接服务器中执行的查询字符串,根据访问数据库的类型,采用所访问数据库的语法规则。
使用示例:如图6所示,在SQL查询分析器中,执行如下语句,返回所需的Sybase数据库中的数据。需要注意的是:不同的数据库对应的SQL语言是有所不同的,单引号红色部分的语句需要遵循Sybase数据库查询的语法规则。如要通过Delphi在前台实现查询,需要注意使用多重引号。
3结束语
通过在SQL server数据库端,建立链接服务器,实现对Sybase数据库的访问,大大简化了数据共享和数据交换的过程,方便了用户的使用,增强了数据库的安全性,极大地提高了数据管理的效率。
参考文献:
[1] (美)Microsoft Corporation.SQL Server2000数据库开发手册[M].北京:科学出版社,2001.
[2] (美)Mike Gunderloy,Joseph L.Jorden. SQL Server2000从入门到精通[M].邱仲潘,译.北京:电子工业出版社,2001.
[3]阎晓青.Sybase Open Client应用开发指南[M].北京:中国水利水电出版社,1997.
中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)23-5541-04
SQL Server是由美国Microsoft公司开发的,是一个关系数据库管理系统。它最初是由Microsoft和Sybase与Ashton-Tate三家公司共同开发的,在1988年推出了第一个OS/2版本。后来,Microsoft专注于开发推广SQL Server的Windows NT版本,并不断地进行版本更新,SQL Server已逐渐发展成为被用户广泛使用的四大数据库管理系统之一,现在普遍使用的SQL Server数据库的版本有:SQL Server 2000,SQL Server 2005,SQL Server 2008。
笔者在开发公司的生产管理系统时,是用Delphi6 SQL Server 2000来实现的,系统已经稳定运行了六年多。在此期间,根据用户的需要进行了不断的完善和功能扩充。随着公司对系统整合的推进和满足生产管理的需要,公司的各个管理系统要进行数据交换,实现数据共享。而其中的采购管理系统的数据库是Sybase数据库,如果要在前台访问需要安装很多个Sybase客户端,实现起来非常麻烦,如果能在服务器端进行访问,不需要改变用户客户端的配置来实现就是一个比较好的选择。
该文就是讲述如何在SQL Server数据库端来实现对Sybase数据库访问的方法,并以公司生产管理系统的具体应用为例做了具体的阐述,对于广大使用SQL Server进行开发的人员具有一定的指导意义。
1工作原理
SQL Server对异构数据库的访问是通过分布式查询来实现的。SQL Server提供了链接服务器用于分布式查询异构数据库。通过链接服务器可以链接到Oracle、Sybase、DB2、SQL Server等大型关系数据库,也可以连接到Access、Excel等文件数据库,甚至可以连接到目录服务(AD)、索引服务等。要链接到一种数据库需要使用相应的接口。微软为很多数据库提供了驱动接口,所以可以直接使用,但是对于没有提供驱动的数据库比如Sybase,则需要结合使用开放式数据库连接(ODBC)应用编程接口(API)和Microsoft分布式事务协调器(MS DTC)来实现。
2实现对Sybase数据库的访问
如果要对Sybase数据库的访问,需要在每个访问Sybase数据库的用户的计算机上安装Sybase客户端,如果用户的使用量比较大的话,就给应用程序的安装、使用和维护带来极大的不便。我们现在通过在SQL Server数据库服务器上安装Sybase客户端,通过在SQL Server数据库上创建链接服务器来实现从SQL Server到Sybase的访问,原来的生产管理系统用户的客户端环境不需要作任何的改变。下面具体介绍实现的过程。
2.1安装Sybase客户端
在SQL Server数据库服务器上安装访问Sybase的客户端,配置连接Sybase数据库服务器的连接参数,并测试连接是否成功。
图2
如上图所示,首先在客户端添加一个需要连接的Sybase数据库服务器,然后设置此服务器的IP地址和端口号,设置完成后通过Ping命令测试能否连接成功。
2.2配置ODBC数据源
在SQL Server数据库服务器上打开【管理工具】【数据源(ODBC)】,配置ODBC数据源。在【用户DSN】和【系统DSN】的标签上都可以进行添加,可根据具体的连接情况进行测试选择。如果在驱动程序的选择列表中,没有出现“Sybase System 11”,则是因为在Sy base客户端安装时没有选择“ODBC Driver”组件。
图3
需要注意的是:在图4的【Connection】标签页的Charset处应填上“cp850”,以免查询返回的数据因为字符集的不匹配而出现乱码的情况。
2.3建立链接服务器
在SQL server企业管理器中,新建链接服务器,设置连接参数,如图5所示。设置完成后,在新建的链接服务器中单击表或视图,如果能正确显示表名或视图名,则链接服务器配置成功。
图5
2.4实现对Sybase数据库的查询
链接服务器创建好后,可以通过OPENQUERY()函数来实现对Sybase数据库的访问。OPENQUERY()函数的使用就是在指定的链接服务器上执行的一个直接传递查询,就像在查询的FORM字句中引用表名那样引用。依据OLE DB提供程序的能力,还可以将OPENQUERY()函数引用为INSERT、UPDATE或DELETE语句的目标表。
使用语法:OPENQUERY ( linked_server ,’query’ )
参数释义:linked_server,一个标识符,表示链接服务器的名称。’query’在链接服务器中执行的查询字符串,根据访问数据库的类型,采用所访问数据库的语法规则。
使用示例:如图6所示,在SQL查询分析器中,执行如下语句,返回所需的Sybase数据库中的数据。需要注意的是:不同的数据库对应的SQL语言是有所不同的,单引号红色部分的语句需要遵循Sybase数据库查询的语法规则。如要通过Delphi在前台实现查询,需要注意使用多重引号。
3结束语
通过在SQL server数据库端,建立链接服务器,实现对Sybase数据库的访问,大大简化了数据共享和数据交换的过程,方便了用户的使用,增强了数据库的安全性,极大地提高了数据管理的效率。
参考文献:
[1] (美)Microsoft Corporation.SQL Server2000数据库开发手册[M].北京:科学出版社,2001.
[2] (美)Mike Gunderloy,Joseph L.Jorden. SQL Server2000从入门到精通[M].邱仲潘,译.北京:电子工业出版社,2001.
[3]阎晓青.Sybase Open Client应用开发指南[M].北京:中国水利水电出版社,1997.