创建远程服务器。
CREATE SERVER server-name CLASS server-class-string USING connection-info-string [ READ ONLY ]
server-class-string : 'SAODBC' | 'ASEODBC' | 'DB2ODBC' | 'IQODBC' | 'MSSODBC' | 'ORAODBC' | 'MSACCESSODBC' | 'MYSQLODBC' | 'ULODBC' | 'ADSODBC' | 'ODBC' | 'SAJDBC' | 'ASEJDBC' | 'IQJDBC'
connection-info-string :
{ host-name:port-number [/dbname ] | data-source-name | sqlanywhere-connection-string }
CREATE SERVER server-name CLASS 'DIRECTORY' USING using-string
using-string : 'ROOT = path [ ;SUBDIRS = n ] [ ;READONLY = { YES | NO } ]' [ ;CREATEDIRS = { YES | NO } ]'
CLASS 子句 指定要用于远程连接的服务器类。服务器类包含详细的服务器功能信息。语法 2 中使用 DIRECTORY 类来访问本地计算机上的目录。
USING 子句 在语法 1 中,USING 子句为数据库服务器提供了一个连接字符串。适用的连接字符串取决于所使用的驱动程序,而驱动程序又取决于 server-class-string。
如果使用基于 ODBC 的服务器类,则 USING 子句是可以包括 'dsn=data-source-name'
(用于指定 ODBC 数据源名称)和/或 'driver=driver-name'
(用于在 Unix 上指定二进制驱动程序或在 Windows 上指定驱动程序定义)的 ODBC 连接字符串。
对于 SQL Anywhere 远程服务器(SAODBC 服务器类),connection-info-string 参数可以是任何有效的 SQL Anywhere 连接字符串。可以使用任何 SQL Anywhere 连接参数。例如,如果存在连接问题,则可以包含一个 LOG 连接参数以对连接尝试进行故障排除。
USING 子句还可以包含用 {} 括起的局部或全局变量名称。例如,包含 'dsn={@mydsn}'
的 USING 子句表示 @mydsn 是 SQL 变量以及 @mydsn 变量的当前内容应该在展开 USING 子句时被替换。
类型必须为 CHAR、VARCHAR 或 LONG VARCHAR 的 SQL 变量 variable-name。
有关使用 USING 子句中变量的详细信息,请参见创建目录访问服务器 (Sybase Central)中的示例 2。
如果使用基于 JDBC 的服务器类,则 USING 子句的形式为 host-name:port-number [/dbname],其中:
host-name 运行远程服务器的计算机。
port-number 远程服务器所监听的 TCP/IP 端口号。SQL Anywhere 的缺省端口号是 2638。
dbname 对于 SQL Anywhere 远程服务器,如果未指定 dbname,则使用缺省数据库。对于 Adaptive Server Enterprise,缺省值为 master 数据库,除使用 dbname 之外,另一个选择是通过其它某些方法(例如,在 FORWARD TO 语句中)指定另一个数据库。
在语法 2 中,USING 子句为本地目录指定以下值:
当创建远程服务器时,会将它添加到 ISYSSERVER 系统表中。
语法 1 CREATE SERVER 语句用于定义远程服务器。
SAJDBC、ASEJDBC 和 IQJDBC(基于 JDBC 的服务器类)已不建议使用,因此不应使用。
要在定义 SQL Anywhere 远程服务器时跳过 ODBC 驱动程序管理器,请使用下列语法(后跟 connection-info-string 的剩余部分):
CREATE SERVER remote-server CLASS 'SAODBC' USING 'DRIVER=SQL Anywhere Native;DSN=my-dsn'; |
此语法允许远程访问数据以直接装载 SQL Anywhere 的 ODBC 驱动程序,并且受 Windows 和 Unix 支持。直接装载 SQL Anywhere 的 ODBC 驱动程序可确保使用当前服务器版本的 ODBC 驱动程序。另外,如果 SQL Anywhere 的 ODBC 驱动程序仅用于远程数据访问,则无需注册。
如果应用程序还使用非 SQL Anywhere 远程服务器,或者在未使用 'DRIVER=SQL Anywhere Native'
的情况下定义 SQL Anywhere 远程服务器,则对于其它远程服务器,远程数据访问仍使用驱动程序管理器。
在 Unix 平台上,还可以使用所提供的 iAnywhere Solutions ODBC 驱动程序引用 ODBC 驱动程序管理器。语法如下:
USING 'driver=SQL Anywhere 12;DSN=my-dsn' |
语法 2 CREATE SERVER 语句允许创建一个访问运行数据库服务器的计算机上的本地目录结构的目录访问服务器。必须为需要使用目录访问服务器的每个数据库用户创建一个外部登录。在 Unix 上,数据库服务器以特定用户身份运行,因此文件权限基于授予给数据库服务器用户的权限而定。
DBA 特权。
Windows Mobile 上不支持。
自动提交。
SQL/2008 服务商扩充。
以下示例创建名为 testsa 的 SQL Anywhere 远程服务器,使用 SQL Anywhere ODBC 驱动程序。
CREATE SERVER testsa CLASS 'SAODBC' USING 'DRIVER=SQL Anywhere 12;DSN=remoteSA'; |
以下示例在不使用 ODBC 驱动程序管理器的情况下直接装载 SQL Anywhere 的 ODBC 驱动程序:
CREATE SERVER testsa CLASS 'SAODBC' USING 'DRIVER=SQL Anywhere Native;DSN=remoteSA'; |
以下示例使用 ASE ODBC 驱动程序创建名为 ase_prod 的 Adaptive Server Enterprise (ASE) 远程服务器。
CREATE SERVER ase_prod CLASS 'ASEODBC' USING 'DSN=remoteASE'; |
下例为名为 oracle723 的 Oracle 服务器创建一个远程服务器。它的 ODBC 数据源名称是 oracle723。
CREATE SERVER oracle723 CLASS 'ORAODBC' USING 'oracle723'; |
以下示例创建一个仅能访问 c:\temp 目录内文件的目录访问服务器。
CREATE SERVER diskserver0 CLASS 'directory' USING 'root=c:\temp'; CREATE EXTERNLOGIN DBA TO diskserver0; CREATE EXISTING TABLE diskdir0 AT 'diskserver0;;;.'; -- Get a list of those files. SELECT permissions, file_name, size FROM diskdir0; |
以下示例创建一个可访问九个目录层级的目录访问服务器。
-- Create a directory server that sees 9 levels of directories. CREATE SERVER diskserver9 CLASS 'directory' USING 'ROOT=c:\temp;SUBDIRS=9'; CREATE EXTERNLOGIN DBA TO diskserver9; CREATE EXISTING TABLE diskdir9 AT 'diskserver9;;;.'; |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |