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 リンク・サーバを作成することができます。SQL クエリの発行には、Microsoft の 4 部分構成のテーブル参照構文か Microsoft の OPENQUERY SQL 関数を使用できます。4 部分構成構文の例を次に示します。

SELECT * FROM SADATABASE..GROUPO.Customers

この例で、SADATABASE はリンク・サーバの名前、GROUPO は SQL Anywhere データベースのテーブル所有者、Customers は SQL Anywhere データベースのテーブル名です。カタログ名が省略されていますが (連続した 2 つのドットがある箇所)、これは SQL Anywhere データベースではカタログ名がサポートされていないからです。

もう 1 つの例では、Microsoft の OPENQUERY 関数を使用しています。

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

OPENQUERY 構文では、2 番目の SELECT 文 ('SELECT * FROM Customers') が SQL Anywhere サーバに渡され、実行されます。

SQL Anywhere OLE DB プロバイダを使用するリンク・サーバを設定するには、必要な手順があります。

♦  リンク・サーバを設定するには、次の手順に従います。
  1. [全般] ページに必要な情報を入力します。

    [全般] ページの [リンク サーバー] フィールドにリンク サーバー名を指定します (上記の例では SADATABASE)。[その他のデータ ソース] オプションを選択して、リストから [SQL Anywhere OLE DB Provider] を選択します。[製品名] フィールドには、ODBC データ・ソース名を指定します (SQL Anywhere 11 Demo など)。[プロバイダ文字列] フィールドには、ユーザ ID やパスワードなど、追加の接続パラメータを指定できます (uid=DBA;pwd=sql など)。[全般] ページの [データ ソース] などのその他のフィールドは空欄のままにします。

  2. [InProcess 許可] プロバイダ・オプションを選択します。

    選択方法は、Microsoft SQL Server のバージョンによって異なります。SQL Server 2000 の場合、[プロバイダ オプション] ボタンをクリックすると、このオプションを選択できるページに移動します。SQL Server 2005 の場合、[リンク サーバー] - [プロバイダ] ツリー・ビューで [SAOLEDB] を右クリックし、[プロパティ] を選択すると、グローバルの [InProcess 許可] チェックボックスが表示されます。この InProcess オプションがオンになっていないと、クエリが失敗します。

  3. [RPC] および [RPC 出力] オプションを選択します。

    選択方法は、Microsoft SQL Server のバージョンによって異なります。SQL Server 2000 の場合、この 2 つのオプションを指定するために 2 つのチェックボックスをオンにする必要があります。チェック・ボックスは、[サーバー オプション] ページにあります。SQL Server 2005 の場合、このオプションは True/False で設定します。すべて True に設定されていることを確認してください。ストアド・プロシージャまたは関数の呼び出しを SQL Anywhere データベースで実行し、出入力パラメータの受け渡しを正常に行うには、リモート・プロシージャ・コール (RPC) のオプションを選択する必要があります。