CLI の手引きおよび解説書

SQLGetFunctions - 関数の入手

目的


仕様: DB2 CLI 2.1 ODBC 1.0 ISO CLI

SQLGetFunctions() は、特定の関数がサポートされるかどうかを照会します。これにより、アプリケーションはさまざまなデータベース・サーバーに接続するときに、さまざまなサポート・レベルに適応することができます。

この関数を呼び出す前に、データベース・サーバーへの接続が存在していることが必要です。

構文

SQLRETURN   SQLGetFunctions  (
                SQLHDBC           ConnectionHandle,  /* hdbc */
                SQLUSMALLINT      FunctionId,        /* fFunction */
                SQLUSMALLINT *FAR SupportedPtr);     /* pfExists */

関数引き数

表 109. SQLGetFunctions 引き数
データ・タイプ 引き数 使用法 説明
SQLHDBC ConnectionHandle 入力 データベース接続ハンドル。
SQLUSMALLINT FunctionId 入力 照会される関数。有効な FunctionId 値は 図 17 に示されています。
SQLUSMALLINT * SupportedPtr 出力 照会される関数がサポートされるかどうかに基づいて、この関数が TRUE または FALSE を戻す場所を指すポインター。

使用法

図 17 は、FunctionId 引き数の有効な値と、対応する関数がサポートされているかどうかを示しています。 (このリストは、サンプル・アプリケーション getfuncs.c を使用して生成されました。)

FunctionId が SQL_API_ALL_FUNCTIONS に設定されている場合、 SupportedPtr は 100 個の要素の SQLSMALLINT 配列を指していなければなりません。この配列は FunctionId 値によって指標として使われ、多くの関数を識別するために使用されます。この配列の一部の要素は使用されておらず、予約済みです。 100 より大きい値になっている FunctionId もあるので、関数のリストを入手するために配列方式を使うことはできません。 100 以上の値を持つすべての FunctionId 値には、 SQLGetFunction() 呼び出しを明示的に出すことが必要です。 FunctionId 値の完全セットは sqlcli1.h に定義されています。

図 17. サポートされる関数のリスト (getfuncs.c からの出力)

-------------------------------------------
Connected to Server: SAMPLE
 Database Name: SAMPLE
 Instance Name: db2inst1
     DBMS Name: DB2/6000
  DBMS Version: 05.00.0000
-------------------------------------------
SQLALLOCCONNECT      is supported   SQLALLOCENV          is supported
SQLALLOCHANDLE       is supported   SQLALLOCSTMT         is supported
SQLBINDCOL           is supported   SQLBINDFILETOCOL     is supported
SQLBINDFILETOPARAM   is supported   SQLBINDPARAM         is supported
SQLBINDPARAMETER     is supported   SQLBROWSECONNECT     is supported
SQLCANCEL            is supported   SQLCLOSECURSOR       is supported
SQLCOLATTRIBUTE      is supported   SQLCOLATTRIBUTES     is supported
SQLCOLUMNPRIVILEGES  is supported   SQLCOLUMNS           is supported
SQLCONNECT           is supported   SQLCOPYDESC          is supported
SQLDATASOURCES       is supported   SQLDESCRIBECOL       is supported
SQLDESCRIBEPARAM     is supported   SQLDISCONNECT        is supported
SQLDRIVERCONNECT     is supported   SQLENDTRAN           is supported
SQLERROR             is supported   SQLEXECDIRECT        is supported
SQLEXECUTE           is supported   SQLEXTENDEDFETCH     is supported
SQLFETCH             is supported   SQLFETCHSCROLL       is supported
SQLFOREIGNKEYS       is supported   SQLFREECONNECT       is supported
SQLFREEENV           is supported   SQLFREEHANDLE        is supported
SQLFREESTMT          is supported   SQLGETCONNECTATTR    is supported
SQLGETCONNECTOPTION  is supported   SQLGETCURSORNAME     is supported
SQLGETDATA           is supported   SQLGETDESCFIELD      is supported
SQLGETDESCREC        is supported   SQLGETDIAGFIELD      is supported
SQLGETDIAGREC        is supported   SQLGETENVATTR        is supported
SQLGETFUNCTIONS      is supported   SQLGETINFO           is supported
SQLGETLENGTH         is supported   SQLGETPOSITION       is supported
SQLGETSQLCA          is supported   SQLGETSTMTATTR       is supported
SQLGETSTMTOPTION     is supported   SQLGETSUBSTRING      is supported
SQLGETTYPEINFO       is supported   SQLMORERESULTS       is supported
SQLNATIVESQL         is supported   SQLNUMPARAMS         is supported
SQLNUMRESULTCOLS     is supported   SQLPARAMDATA         is supported
SQLPARAMOPTIONS      is supported   SQLPREPARE           is supported
SQLPRIMARYKEYS       is supported   SQLPROCEDURECOLUMNS  is supported
SQLPROCEDURES        is supported   SQLPUTDATA           is supported
SQLROWCOUNT          is supported   SQLSETCOLATTRIBUTES  is supported
SQLSETCONNECTATTR    is supported   SQLSETCONNECTION     is supported
SQLSETCONNECTOPTION  is supported   SQLSETCURSORNAME     is supported
SQLSETDESCFIELD      is supported   SQLSETDESCREC        is supported
SQLSETENVATTR        is supported   SQLSETPARAM          is supported
SQLSETPOS            is supported   SQLSETSCROLLOPTIONS  is supported
SQLSETSTMTATTR       is supported   SQLSETSTMTOPTION     is supported
SQLSPECIALCOLUMNS    is supported   SQLSTATISTICS        is supported
SQLTABLEPRIVILEGES   is supported   SQLTABLES            is supported
SQLTRANSACT          is supported
 

注:バージョン 2.1 以前または LOB データ・タイプをサポートしない他のIBM RDBMS では、 LOB サポート関数 (SQLGetLength()SQLGetPosition()SQLGetSubString()SQLBindFileToCol()SQLBindFileToCol()) は、DB2 共通サーバー用に接続している場合にはサポートされません。

戻りコード

診断

表 110. SQLGetFunctions SQLSTATE
SQLSTATE 説明 解説
40003 08S01 通信リンクに障害が起きました。 アプリケーションとデータ・ソースとの間の通信リンクが、関数の完了する前に失敗しました。
58004 予期しないシステム障害です。 回復不能システム・エラー。
HY001 メモリーの割り振り失敗です。 DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを割り振ることができません。
HY010 関数の順序エラーです。 データベース接続が確立する前に、SQLGetFunctions() が呼び出されました。
HY013 予期しないメモリーのハンドル・エラーが起きました。 DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを使用することができませんでした。

許可

なし。

CLI サンプル ilinfo.c

以下の例では、図 17 に記述されている、任意のデータ・ソースに関するリストを生成します。

(ここで完全サンプル ilinfo.c を使用することもできます 。)

/* From the CLI sample ILINFO.C */
/* ... */
    /* check to see if SQLGetInfo() is supported */
    sqlrc = SQLGetFunctions(hdbc, SQL_API_SQLGETINFO, &supported);
    HANDLE_CHECK( SQL_HANDLE_DBC, hdbc, sqlrc, &henv, &hdbc ) ;     
    
 

参照

なし。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]