仕様: | DB2 CLI 2.1 | ODBC 1.0 | ISO CLI |
SQLGetFunctions() は、特定の関数がサポートされるかどうかを照会します。これにより、アプリケーションはさまざまなデータベース・サーバーに接続するときに、さまざまなサポート・レベルに適応することができます。
この関数を呼び出す前に、データベース・サーバーへの接続が存在していることが必要です。
構文
SQLRETURN SQLGetFunctions ( SQLHDBC ConnectionHandle, /* hdbc */ SQLUSMALLINT FunctionId, /* fFunction */ SQLUSMALLINT *FAR SupportedPtr); /* pfExists */
関数引き数
データ・タイプ | 引き数 | 使用法 | 説明 |
---|---|---|---|
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 は、関数の実行または完了をサポートするのに必要なメモリーを使用することができませんでした。 |
許可
なし。
以下の例では、図 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 ) ;
参照