« V1.0.0.8リリース | トップページ | ScriptGetProperties »

2007年11月16日 (金)

SQLGetInfo

今回はDB2 CLI/ODBCのSQLGetInfo関数である。ODBCは接続先のデータベースの種類によらない汎用的なアプリケーション・プログラミング・インターフェースを開発者に提供するために開発されたインターフェースであるので、実際の接続先のデータソースやドライバに関する情報を返す関数が用意されている。それが、SQLGetInfo関数である。

SQLGetInfo関数の呼び出し時に第2引数として指定するパラメータ(InfoType)の値により様々な情報が取得できる。指定できる値に例えば、次のようなものがある。

  • SQL_DATABASE_NAME
  • SQL_DBMS_NAME
  • SQL_DBMS_VER

  • SQL_TXN_CAPABLE
  • SQL_DEFAULT_TXN_ISOLATION
  • SQL_TXN_ISOLATION_OPTION
  • SQL_SCROLL_OPTIONS
  • SQL_CURSOR_COMMIT_BEHAVIOUR
  • SQL_CURSOR_ROLLBACK_BEHAVIOUR

上記は用意されている値のほんの一部である。最初の3つはDBMS Prodcut Informationと呼ばれる値で、SQL_DATABASE_NAMEは接続中のデータベースの名前、SQL_DBMS_NAMEは接続中のデータベース管理システムの名前、SQL_DBMS_VERはそのバージョンを表す情報を返す。

残りは、Data Source Informationと呼ばれる値で、SQL_TXN_CAPABLEはトランザクションの能力、SQL_DEFAULT_TXN_ISOLATIONはデフォルトのトランザクションの分離レベル、SQL_TXN_ISOLATION_OPTIONはサポートしているトランザクションの分離レベル、SQL_SCROLL_OPTIONSはサポートしているカーソルの種類(前方専用、静的、キーセット駆動、動的カーソルなど)を、SQL_CURSOR_COMMIT_BEHAVIOUR、SQL_CURSOR_ROLLBACK_BEHAVIOURは、トランザクションのコミットまたはロールバック時に、既存のオープン中のカーソルがどう振舞うかを表す情報を返す。

で、実際にDB2 Express CのSAMPLEデータベースに接続して上記の値を指定して情報を取得してみた。

Sqlgetinfo_2 

上のイメージより、サポートしている分離レベルはREAD UNCOMITTED、READ COMMITTED、REPETABLE READ、SERIALIZABLEのすべて、サポートしているカーソルの種類は前方専用、静的、キーセット駆動の3つ。また、SQL_CURSOR_COMMIT_BEHAVIOURのSQL_SC_PRESERVEは、トランザクションのコミット時にオープン中のカーソルが保存され、コミット後も引き続きフェッチできることを表す。同様に、SQL_CURSOR_ROLLBACK_BEHAVIOURのSQL_CB_CLOSEはロールバック時には、オープン中のカーソルが閉じられることを表す。前後するが、SQL_TXN_CAPABLEのSQL_TC_ALLはトランザクションにDML文のみならず、DDL文を含むことができることを表す(DB2はDDL文含むことできる??)。

と、様々な情報が取得できる。

« V1.0.0.8リリース | トップページ | ScriptGetProperties »

DB2」カテゴリの記事

Oracle」カテゴリの記事

データベース」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1497665/39651807

この記事へのトラックバック一覧です: SQLGetInfo:

« V1.0.0.8リリース | トップページ | ScriptGetProperties »

自作ソフトウェア

無料ブログはココログ

メモ