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

SQL Anywhere 12.0.1 » 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 12 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 値を、作成するデータベースサーバー接続呼び出しへのパラメーターとして使用します。

 参照