リモートサーバーを作成します。
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 句は、ODBC データソース名を示す 'dsn=data-source-name'
か UNIX のドライバーバイナリまたは Windows のドライバー定義を示す 'driver=driver-name'
またはその両方を含むことができる ODBC 接続文字列です。
SQL Anywhere リモートサーバー (SAODBC サーバークラス) の場合、connection-info-string パラメーターには任意の有効な SQL Anywhere 接続文字列を指定できます。任意の SQL Anywhere 接続パラメーターを使用できます。たとえば、接続に問題がある場合は、LOG 接続パラメーターを含めて接続試行をトラブルシューティングできます。
USING 句には {} で囲んだローカル変数名またはグローバル変数名を含めることもできます。たとえば、'dsn={@mydsn}'
を含む USING 句は、@mydsn が SQL 変数で、@mydsn 変数の現在の内容が USING 句の展開時に置き換えられることを示します。
SQL 変数 variable-name は、CHAR、VARCHAR、または LONG VARCHAR データ型である必要があります。
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 クラスでローカルディレクトリに次の値を指定しています。
ROOT 句 このパスはデータベースサーバーに対する相対パスであり、ディレクトリアクセスクラスのルートです。ディレクトリアクセスサーバー名を使用してプロキシテーブルを作成すると、プロキシテーブルのパスはこのルートパスに対する相対パスになります。
SUBDIRS 句 データベースサーバーがアクセスできるルート内のディレクトリレベル数を表す 0 ~ 10 の数。SUBDIRS を省略したときまたは 0 に設定したときは、ディレクトリアクセスサーバー経由でルートディレクトリのファイルのみにアクセスできます。ディレクトリアクセスサーバー経由で使用できるディレクトリまたはサブフォルダーのいずれかにプロキシテーブルを作成できます。
READONLY 句 ディレクトリアクセスサーバーからアクセスするファイルが READONLY であり修正できないかどうかを指定します。デフォルトでは NO に設定されています。
CREATEDIRS 句 ディレクトリアクセスサーバーを使用してディレクトリを作成できるかどうかを指定します。デフォルトは NO です。
リモートサーバーを作成すると、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 ベンダー拡張。
次の例は、SQL Anywhere ODBC ドライバーを使用して、testsa という名前の SQL Anywhere リモートサーバーを作成します。
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'; |
次の例は、Oracle サーバー oracle723 のリモートサーバーを作成します。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; |
次の例は、9 レベルのディレクトリを表示するディレクトリアクセスサーバーを作成します。
-- 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 で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |