このユーティリティは、選択されたデータソースへの既存の接続を使用し、接続の割当てられたハンドルと関連付けられているデータソースに関する一般情報を返すSQLGetInfo関数を送信します。
SQL_DATA_SOURCE_NAME = try-access |
接続時に使用されたデータソース名を含む文字列です。アプリケーションがSQLConnectを呼び出した場合、これはszDSNパラメータの値です。SQLDriverConnectまたはSQLBrowseConnectを呼び出した場合は、ドライバに渡される接続文字列内のDSNキーワードの値です。接続文字列にDSNキーワードが含まれていなかった場合は空の文字列です。(DRIVERキーワードが含まれている場合など)
SQL_ACCESSIBLE_TABLES = Y |
この文字列は、ユーザがSQLTablesによって返される全てのテーブルにSELECT権限が付与されている場合、「Y」です。ユーザがアクセスできないテーブルがある場合、「N」です。
SQL_CONCAT_NULL_BEHAVIOR = |
NULL値の文字型カラムと非NULL値の文字型カラムとの結合に対して、データソースが処理する方法を示す文字列です。
16ビットのint型の値によってNULL値の文字型データタイプと非NULL値のデータタイプをどのように結合させるかを示します。
SQL_CB_NULL = Result is NULL valued. |
の場合、NULLを返します。
SQL_CB_NON_NULL = Result is concatenation of non-NULL valued column or columns. |
の場合、NULLでない文字列の結合を返します。
SQL_DATA_SOURCE_READ_ONLY = N |
この文字列は、 データソースが読み取り専用モードに設定されている場合、「Y」です。データソースが読み取り専用モードに設定されていない場合、「N」です。この特性はデータソース自体にのみ関連するもので、データソースにアクセスすることができるドライバの特性ではありません。
SQL_CURSOR_COMMIT_BEHAVIOR = Close cursors |
COMMIT処理コマンドがデータソースでカーソルおよび準備されている文にどのように影響するかを示す文字列です。
SQL_CB_DELETE …… カーソルを閉じ、準備されている文を削除します。カーソルを再び使用するには、アプリケーションは文ハンドルをもう一度準備して、再実行する必要があります。
SQL_CB_CLOSE …… カーソルを閉じます。準備されている文については、アプリケーションは、SQLPrepareを再度呼び出さなくても文ハンドルでSQLExecuteを呼び出すことができます。
SQL_CB_PRESERVE …… COMMIT処理コマンドの前と同じ位置にカーソルを維持します。アプリケーションは引き続きデータを取り出すことができます。また、カーソルを閉じて、ステートメントの処理を再度準備しなくても再実行することができます。オンラインプログラムでは、たとえ範囲がウィンドウを取り出した後にあっても、カーソルは閉じません。この規則は、SQL_CURSOR_COMMIT_BEHAVIOR = SQL_CB_PRESERVEが定義されたドライバにのみ適用されます。
SQL_CURSOR_ROLLBACK_BEHAVIOR = Close cursors |
ROLLBACK処理コマンドがデータソースでカーソルおよび準備されている文にどのように影響するかを示す文字列です。
SQL_CB_DELETE …… カーソルを閉じ、準備されている文を削除します。カーソルを再び使用するには、アプリケーションは文ハンドルをもう一度準備して、再実行する必要があります。
SQL_CB_CLOSE …… カーソルを閉じます。準備されている文については、アプリケーションは、SQLPrepareを再度呼び出さなくても文ハンドルでSQLExecuteを呼び出すことができます。
SQL_CB_PRESERVE …… COMMIT処理コマンドの前と同じ位置にカーソルを維持します。アプリケーションは引き続きデータを取り出すことができます。また、カーソルを閉じて、文ハンドルをもう一度準備しなくても再実行することができます。
SQL_DEFAULT_TXN_ISOLATION = SQL_TXN_READ_COMMITTED |
ドライバまたはデータソースによってサポートされるデフォルトのトランザクション分離レベルを示す文字列です。データソースでトランザクションがサポートされていない場合は、ゼロです。トランザクション分離レベルの定義には、次の用語が使用されます。
ダーティリード …… トランザクション1によって行が変更されます。トランザクション1によって変更がコミットされる前に、トランザクション2によって変更された行が読み取られます。トランザクション1によって変更がロールバックされると、それまで存在したことがないと考えられる行がトランザクション2によって読み取られることになります。
反復不可能なリード …… トランザクション1によって行が読み取られます。トランザクション2によってその行が更新または削除され、この変更がコミットされます。トランザクション1がその行をもう一度読み取ろうとすると、異なる値を受け取るか、またはその行が削除されたことがわかります。
ファントム …… トランザクション1によって、検索条件に一致した行が読み取られます。トランザクション2によって、その検索条件に一致する行が挿入されます。トランザクション1がその行を読み取る文をもう一度実行すると、異なる行を受け取ります。
データソースでトランザクションがサポートされている場合、ドライバによって以下のビットマスクのいずれかが返されます。
SQL_TXN_READ_UNCOMMITTED …… ダーティリード、反復不可能なリード、およびファントムがサポートされます。
SQL_TXN_READ_COMMITTED …… ダーティリードはサポートされません。反復不可能なリードとファントムはサポートされます。
SQL_TXN_REPEATABLE_READ …… ダーティリードと反復不可能なリードはサポートされません。ファントムはサポートされます。
SQL_TXN_SERIALIZABLE …… トランザクションは直列化することができます。ダーティリード、反復不可能なリード、およびファントムはサポートされません。
SQL_TXN_VERSIONING …… トランザクションは直列化することができますが、SQL_TXN_SERIALIZABLEより同時実行数が増える可能性があります。ダーティリードはサポートされません。通常、SQL_TXN_SERIALIZABLEは同時実行数を削減するロックプロトコルを使用して実装され、SQL_TXN_VERSIONINGはレコードのバージョン化などの非ロックプロトコルを使用して実装されます。Oracleの読取り一貫性の分離レベルは、SQL_TXN_VERSIONINGの一例です。
SQL_MULT_RESULT_SETS = N |
この文字列は、 データソースで複数の結果セットがサポートされている場合、「Y」です。それ以外の場合、「N」です。
SQL_MULTIPLE_ACTIVE_TXN = Y |
この文字列は、 複数の接続でアクティブなトランザクションが許可されている場合、「Y」です。一度にアクティブなトランザクションを所有することができる接続が1つだけの場合、「N」です。
SQL_NEED_LONG_DATA_LEN = N |
この文字列は、長いデータ値(データタイプがSQL_LONGVARCHAR、SQL_LONGVARBINARY、またはデータソース固有の長いデータタイプの場合)がデータソースに送信される前に、データソースでその値の長さが必要な場合、「Y」です。それ以外の場合、「N」です。
詳細は、SQLBindParameterと SQLSetpos 関数の説明を参照してください。
SQL_OWNER_TERM = NULL STRING |
所有者のデータソースベンダの名前を含む文字列です。例えば、所有者、Authorization ID、Schemaなどです。
SQL_NULL_COLLATION = NULL |
NULLデータがリストのどこにソーティングされるかを示す文字列です。
SQL_NC_END …… 並べ替え順に関係なく、NULLは一覧の末尾に格納されます。
SQL_NC_HIGH …… NULLは一覧の最上部に格納されます。
SQL_NC_LOW …… NULLは一覧の最下部に格納されます。
SQL_NC_START …… 並べ替え順に関係なく、NULLは一覧の先頭に格納されます。
次に説明するSQL_AUTOCOMMITの値を取得する場合、ユーティリティは選択されたデータソースへの既存の接続を使用し、接続オプションの現在の設定を返すSQLGetConneCToption関数を送信します。
SQL_AUTOCOMMIT on connection = SQL_AUTOCOMMIT_ON |
自動コミットモードと手動コミットモードのどちらを使用するかを示す文字列です。
SQL_AUTOCOMMIT_OFFの場合、ドライバでは手動コミットモードが使用されるので、アプリケーションは、SQLTransactを使用して明示的にトランザクションをコミットまたはロールバックする必要があります。
SQL_AUTOCOMMIT_ONの場合、ドライバでは自動コミットモードが使用されます。各文は、実行されるとすぐコミットされます。これはデフォルトです。手動コミットモードから自動コミットモードに変更すると、接続上の開いているトランザクションが全てコミットされます。
注意: |
一部のデータソースでは、文がコミットされるたびに、アクセスプランが削除され、接続上の全ての文ハンドルのカーソルが閉じられます。自動コミットモードでは、各文が実行された後、この動作が発生することがあります。詳細については、「SQLGetInfo」の「SQL_CURSOR_COMMIT_BEHAVIOR 」と「SQL_CURSOR_ROLLBACK_BEHAVIOR」情報タイプを参照してください。 |
SQL_USER_NAME = admin |
特定のデータベースで使用する名前を含む文字列です。ログイン名と異なってもかまいません。