SQLBrowseConnectは、SQLDriverConnectに似ていますが、呼び出し元で接続情報を反復して指定することができます。SQLBrowseConnectでは、ドライバから追加のログオン情報の入力を要求することはできません。代わりに、ドライバは、必要な情報および任意で指定可能な情報を示す文字列を返すことができます。
例えば、ユーザーが次のように指定した場合
DRIVER=TeradataODBC Driver for Teradataは、次のような文字列を返します。
"DBCNAME:Teradata System=?;UID:Teradata User Id=?;PWD:Teradata Password=?;*USEINTEGRATEDSECURITY:Enable SSO = ?;*DATABASE:DefaultDatabase=?;*ACCOUNT:Account=?;"
"*"は任意フィールドを示し、"?"は値が不足していることを示します。
構文
SQLRETURN SQLBrowseConnect( SQLHDBC ConnectionHandle, SQLCHAR * InConnectionString, SQLSMALLINT StringLength1, SQLCHAR * OutConnectionString, SQLSMALLINT BufferLength, SQLSMALLINT * StringLength2Ptr);
SQLBrowseConnectは、データ ソースへの接続に必要な、属性や属性値の反復方式による検索および列挙をサポートしています。
SQLBrowseConnectの呼び出しごとに、一連のレベルの属性と属性値、およびこの次のレベルで必要な属性の入ったOutConnectionStringが返されます。すべてのレベルの列挙が終わった場合、データ ソースへの接続が完了して、SQLBrowseConnectから接続完了文字列が返されます。
SQLBrowseConnectは、セキュリティとログオンに関する接続文字列キーワードを使用します。
SQLBrowseConnectは選択された認証メカニズムを使用して、認証済みの状態で接続を確立します。
SQLBrowseConnectは、接続文字列属性キーワード用のOutConnectionStringに以下を返します。
*AUTHENTICATION:Authentication Mechanism={<メカニズム リスト>}中括弧はリテラルであり(ドライバから返されます)、<メカニズム リスト>は、メカニズム名とメカニズム ラベルをコロンで区切ったペアを、カンマで区切ったリストです。アスタリスク(*)はAUTHENTICATION属性が任意であることを示します。
メカニズム名ラベルは、ダイアログ ボックスに表示するためにODBCが指定した分かりやすい名前です。メカニズム ラベルがTeraGSSから利用できる場合はメカニズム ラベルが使用され、利用できない場合はメカニズム名が使用されます。デフォルトのメカニズムは示されません。
ゲートウェイへの接続を確立するために十分な情報が接続文字列に存在しない場合は、クライアント上でサポートされるメカニズムが<メカニズム リスト>に列挙されます。十分な情報が存在する場合は、クライアントとゲートウェイの両方でサポートされている認証メカニズムがリストに列挙されます。
次に例を示します。
*AUTHENTICATION:Authentication Mechanism={TD2:Teradata 2, KRB5:Kerberos} *AUTHENTICATIONSTRING:Authentication String=?
"?"は、値が必須であることを示します。
認証メカニズムが選択できない場合、SQLBrowseConnectはSQL_ERRORおよび新たなエラー メッセージを返します。