SQLGetInfo のサポート

ODBC 2の場合。x アプリケーションは SQLGetInfo を ODBC 3*.x* ドライバに呼び出します。以下の表にある InfoType 引数はサポートされなければなりません。

InfoType 返品
SQL_ALTER_TABLE(ODBC 2.0) 注: この情報タイプは廃止されていません。右側の列にあるビットマスクは非推奨です。 データソースがサポートする文の節を列挙するSQLINTEGER ビットマスク ALTER TABLE

サポートされている句を決定するには、次のビットマスクを使用します。

SQL_AT_DROP_COLUMN = 列を落とす機能がサポートされています。 これが連鎖反応を引き起こすか制限行動をもたらすかはドライバーによって定義されます。 (ODBC 2.0)

SQL_AT_ADD_COLUMN = 1つの ALTER TABLE 文で複数の列を追加できる機能をサポートしています。 このビットは他のSQL_AT_ADD_COLUMN_XXXビットやSQL_AT_CONSTRAINT_XXXビットとは結合しません。 (ODBC 2.0)
SQL_FETCH_DIRECTION(ODBC 1.0)

情報型はODBC 1.0で導入されました。各ビットマスクには、導入されたバージョンがラベル付けされています。
サポートされるフェッチ方向オプションを列挙するSQLINTEGER ビットマスク。

以下のビットマスクはフラグと組み合わせて使用され、どのオプションが対応するかを判断します。

SQL_FD_FETCH_NEXT(ODBC 1.0) SQL_FD_FETCH_FIRST(ODBC 1.0) SQL_FD_FETCH_LAST (ODBC 1.0) SQL_FD_FETCH_PRIOR (ODBC 1.0) SQL_FD_FETCH_ABSOLUTE (ODBC 1.0) SQL_FD_FETCH_RELATIVE (ODBC 1.0) SQL_FD_FETCH_BOOKMARK (ODBC 2.0)
SQL_LOCK_TYPES(ODBC 2.0) SQLSetPosfLock引数に対してサポートされているロックタイプを列挙したSQLINTEGER ビットマスクです。

以下のビットマスクはフラグと組み合わせて使用され、どのロックタイプが対応するかを判定します。

SQL_LCK_NO_CHANGE SQL_LCK_EXCLUSIVE SQL_LCK_UNLOCK
SQL_ODBC_API_CONFORMANCE(ODBC 1.0) ODBC準拠レベルを示すSQLSMALLINT値。

SQL_OAC_NONE = なし

SQL_OAC_LEVEL1 = レベル1対応

SQL_OAC_LEVEL2 = レベル2対応
SQL_ODBC_SQL_CONFORMANCE(ODBC 1.0) ドライバーがサポートするSQL文法を示すSQLSMALLINTの値。 SQL適合レベルの定義については 付録C: SQL文法 を参照してください。

SQL_OSC_MINIMUM = 最低サポート文法

SQL_OSC_CORE = サポートされているコア文法

SQL_OSC_EXTENDED = 拡張文法のサポート
SQL_POS_OPERATIONS(ODBC 2.0) SQLSetPosでサポートされている操作を列挙するSQLINTEGERビットマスクです。

以下のビットマスクをフラグと組み合わせて、どのオプションが対応するかを判断するために使われます。

SQL_POS_POSITION(ODBC 2.0) SQL_POS_REFRESH(ODBC 2.0) SQL_POS_UPDATE(ODBC 2.0) SQL_POS_DELETE(ODBC 2.0) SQL_POS_ADD(ODBC 2.0)
SQL_POSITIONED_STATEMENTS(ODBC 2.0) サポートする位置付けSQL文を列挙するSQLINTEGER ビットマスク。

以下のビットマスクが、どの文がサポートされているかを判定するために使われます。

SQL_PS_POSITIONED_DELETE SQL_PS_POSITIONED_UPDATE SQL_PS_SELECT_FOR_UPDATE
SQL_SCROLL_CONCURRENCY(ODBC 1.0) カーソルでサポートされる並行制御オプションを列挙するSQLINTEGER ビットマスク。

サポートされているオプションを決定するには、次のビットマスクを使用します。

SQL_SCCO_READ_ONLY = カーソルは読み取り専用です。 更新は許可されていません。

SQL_SCCO_LOCK = カーソルは、行を更新できるよう最低レベルのロックを使用します。

SQL_SCCO_OPT_ROWVER = カーソルは楽観的並行制御を採用し、SQLBase ROWIDやSybase TIMESTAMPなどの行バージョンを比較します。

SQL_SCCO_OPT_VALUES = カーソルは楽観的並行制御を用い、値を比較します。
SQL_STATIC_SENSITIVITY(ODBC 2.0) SQLINTEGER ビットマスクは、アプリケーションが SQLSetPos や位置付けされた更新・削除文を通じて静的またはキーセット駆動のカーソルに変更を加えた場合、そのアプリケーションが検出できるかどうかを列挙します。

SQL_SS_ADDITIONS = 追加された行はカーソルに見えます。カーソルはこれらの行にスクロールできます。 これらの行がカーソルに追加される場所はドライバーに依存します。

SQL_SS_DELETIONS = 削除された行はカーソルに表示されず、結果セットに「穴」を残しません。削除された行からカーソルがスクロールした後は、その行に戻ることができません。

SQL_SS_UPDATES = 行の更新はカーソルに表示されます。カーソルがスクロールして更新された行に戻る場合、カーソルから返されるデータは元のデータではなく更新されたデータです。 このオプションは、キーを更新しない静的カーソルやキーセット駆動カーソルの更新にのみ適用されます。 このオプションは動的カーソルや混合カーソルでキーが変更される場合には適用されません。

アプリケーションが他のユーザーによる結果セットの変更を検出できるか、同じアプリケーション内の他のカーソルも含めて、カーソルの種類によって異なります。

ODBC 3*.x*アプリケーションがODBC 3*.x*ドライバで動作する場合、前述の表で説明されたInfoType引数でSQLGetInfoを呼び出すのではなく、次の段落に記載されているODBC 3*.x* InfoType引数を使用するべきです。 ODBC 2で使用される InfoType 引数間に一対一の対応はありません。x およびODBC 3*.x*で使われているもの。 ODBC 3*.x*アプリケーションがODBC 2と連携しています。一方、x ドライバーは前述の InfoType 引数を使うべきです。

前の表の情報タイプの一部は、カーソル属性の情報タイプに置き換えられ、廃止されています。 これらの廃止された情報タイプは、SQL_FETCH_DIRECTION、SQL_LOCK_TYPES、SQL_POS_OPERATIONS、SQL_POSITIONED_STATEMENTS、SQL_SCROLL_CONCURRENCY、SQL_STATIC_SENSITIVITYです。 新しいカーソル属性タイプはSQL_XXX_CURSOR_ATTRIBUTES1and SQL_XXX_CURSOR_ATTRIBUTES2で、XXXはDYNAMIC、FORWARD_ONLY、KEYSET_DRIVEN、またはSTATICに等しいです。 新しいタイプはそれぞれ単一のカーソルタイプのドライバー機能を示しています。 これらのオプションの詳細については、 SQLGetInfo 関数の説明をご覧ください。