Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » SQL Anywhere 数据访问 API » SQL Anywhere OLE DB 和 ADO 开发

 

使用 OLE DB 设置 Microsoft 链接服务器

可创建一个能使用 SQL Anywhere OLE DB 提供程序来获得对 SQL Anywhere 数据库的访问权限的 Microsoft 链接服务器。可使用 Microsoft 的表引用语法(由 4 部分组成)或 Microsoft 的 OPENQUERY SQL 函数来发出 SQL 查询。下面就是一个由 4 部分组成的语法的示例。

SELECT * FROM SADATABASE..GROUPO.Customers

在本例中,SADATABASE 是链接服务器的名称,GROUPO 是 SQL Anywhere 数据库中的表所有者,而 Customers 是 SQL Anywhere 数据库中的表名。由于分类名不是 SQL Anywhere 数据库的功能,因此被省略(由两个连续点表示)。

另一种形式是使用 Microsoft 的 OPENQUERY 函数。

SELECT * FROM OPENQUERY( SADATABASE, 'SELECT * FROM Customers' )

在 OPENQUERY 语法中,第二个 SELECT 语句 ('SELECT * FROM Customers') 被传递到 SQL Anywhere 服务器中执行。

要对使用 SQL Anywhere OLE DB 提供程序的链接服务器进行设置,必须遵循几个步骤。

♦  设置链接服务器
  1. 填充 [常规] 页。

    [常规] 页上的 [链接服务器] 字段应包含链接服务器的名称(如上面使用的 SADATABASE)。应选择 [其他数据源] 选项,并应从列表中选择 [SQL Anywhere OLE DB 访问接口]。[产品名称] 字段应当包含 ODBC 数据源名(例如,SQL Anywhere 11 Demo).[访问接口字符串] 字段可包含其它连接参数,如用户 ID 和口令(例如,uid=DBA;pwd=sql)。其它字段(如 [常规] 页上的 [数据源])应当留空。

  2. 选择 [允许进程内] 访问接口选项。

    完成该操作的方法因 Microsoft SQL Server 的版本而异。在 SQL Server 2000 中有一个 [访问接口选项] 按钮,可将您引至能选择此选项的页面。在 SQL Server 2005 中,当您右击 [链接服务器/访问接口] 树形视图中的 [SAOLEDB 访问接口] 并选择 [属性] 时,会出现一个全局 [允许进程内] 复选框。如果未选择 [进程内] 选项,则查询将失败。

  3. 选择 [RPC] 和 [RPC 输出] 选项。

    完成该操作的方法因 Microsoft SQL Server 的版本而异。在 SQL Server 2000 中,必须为这两个选项选中两个复选框。这些复选框位于 [服务器选项] 页上。在 SQL Server 2005 中,这些选项具有 True/False 设置。确保将它们设置为 True。如果想要在 SQL Anywhere 数据库中执行存储过程/函数调用,并成功地传递参数(传入和传出),则必须设置远程过程调用(Remote Procedure Call,简称 RPC)选项。