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

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ プログラミング » OLE DB と ADO の開発

 

OLE DB 接続パラメータ

OLE DB 接続パラメータは、Microsoft が定義しています。SQL Anywhere OLE DB プロバイダは、これらの接続パラメータのサブセットをサポートしています。一般的な接続文字列は、次のようなものです。

"Provider=SAOLEDB;Data Source=myDsn;Initial Catalog=myDbn;
    User ID=myUid;Password=myPwd"

次に示すのは、プロバイダがサポートする OLE DB 接続パラメータです。ときには、OLE DB 接続パラメータが SQL Anywhere 接続パラメータと同一 (Password など) または類似 (User ID など) します。これらの接続パラメータの多くでのスペースの使用に注意してください。

  • Provider   このパラメータは、SQL Anywhere OLE DB プロバイダ (SAOLEDB) を特定するために使用されます。

  • User ID   この接続パラメータは、SQL Anywhere UserID (UID) 接続パラメータに直接マップします(例:User ID=DBA)。

  • Password   この接続パラメータは、SQL Anywhere Password (PWD) 接続パラメータに直接マップします(例:Password=sql)。

  • Data Source   この接続パラメータは、SQL Anywhere DataSourceName (DSN) 接続パラメータに直接マップします(例:Data Source=SQL Anywhere 16 Demo)。

  • Initial Catalog   この接続パラメータは、SQL Anywhere DatabaseName (DBN) 接続パラメータに直接マップします(例:Initial Catalog=demo)。

  • Location   この接続パラメータは、SQL Anywhere Host 接続パラメータに直接マップします。パラメータ値は Host パラメータ値と同じ形式になります(例:Location=localhost:4444)。

  • Extended Properties   この接続パラメータは、SQL Anywhere に固有のすべての接続パラメータに引き渡すために、OLE DB によって使用されます(例:Extended Properties="UserID=DBA;DBKEY=V3moj3952B;DBF=demo.db")。

    ADO は、この接続パラメータを使用して、認識しないすべての接続パラメータを収集して渡します。

    Microsoft の接続ウィンドウの中には、[Prov String] または [Provider String] というフィールドがあるものがあります。このフィールドの内容が、Extended Properties への値として渡されます。

  • OLE DB Services   この接続パラメータは、SQL Anywhere OLE DB プロバイダからは直接処理されません。これは、ADO で接続プーリングを制御します。

  • Prompt   この接続パラメータは、接続がエラーを処理する方法を管理します。可能なプロンプト値は、1、2、3、4 のいずれかです。その意味は、DBPROMPT_PROMPT (1)、DBPROMPT_COMPLETE (2)、DBPROMPT_COMPLETEREQUIRED (3)、DBPROMPT_NOPROMPT (4) です。

    デフォルトのプロンプト値は 4 であり、これは、プロバイダが接続ウィンドウに存在しないことを意味します。プロンプト値を 1 に設定すると、接続ウィンドウが常に表示されるようになります。プロンプト値を 2 に設定すると、初期接続試行が失敗した場合に接続ウィンドウが表示されるようになります。プロンプト値を 3 に設定すると、初期接続試行が失敗した場合に接続ウィンドウが表示されるようになりますが、プロバイダはデータソースへの接続には必要ない情報に対する制御を無効にします。

  • Window Handle   アプリケーションは、適用できる場合、親ウィンドウのハンドルを渡すことができ、また、ウィンドウハンドルが適用できないか、プロバイダがどのウィンドウも表示しない場合、NULL ポインタを渡すことができます。ウィンドウハンドル値は通常は 0 (NULL) です。

その他の OLE DB 接続パラメータも指定できますが、OLE DB プロバイダからは無視されます。

SQL Anywhere OLE DB プロバイダは、起動されるときに、OLE DB 接続パラメータ用のプロパティ値を取得します。次に示すのは、Microsoft の RowsetViewer アプリケーションから取得した典型的なプロパティ値のセットです。

User ID 'DBA' 
Password 'sql' 
Location 'localhost:4444' 
Initial Catalog 'demo'
Data Source 'testds' 
Extended Properties 'appinfo=api=oledb' 
Prompt 2 
Window Handle 0 

このパラメータ値のセットからプロバイダが構築する接続文字列は、次のとおりです。

'DSN=testds;HOST=localhost:4444;DBN=demo;UID=DBA;PWD=sql;appinfo=api=oledb'

SQL Anywhere OLE DB プロバイダは、接続文字列、Window Handle、Prompt 値を、作成するデータベースサーバ接続呼び出しへのパラメータとして使用します。

これは、簡単な ADO 接続文字列の例です。

connection.Open "Provider=SAOLEDB;UserID=DBA;Location=localhost:4444;Pwd=sql"

ADO は、接続文字列を解析して、認識できない接続パラメータすべてを Extended Properties で渡します。SQL Anywhere OLE DB プロバイダは、起動されるときに、OLE DB 接続パラメータ用のプロパティ値を取得します。次に示すのは、前述の接続文字列で使用された ADO アプリケーションから取得されたプロパティ値のセットです。

User ID ''
Password ''
Location 'localhost:4444'
Initial Catalog ''
Data Source ''
Extended Properties 'UserID=DBA;Pwd=sql'
Prompt 4
Window Handle 0

このパラメータ値のセットからプロバイダが構築する接続文字列は、次のとおりです。

'HOST=localhost:4444;UserID=DBA;Pwd=sql'

プロバイダは、接続文字列、Window Handle、Prompt 値を、作成するデータベースサーバ接続呼び出しへのパラメータとして使用します。

 参照