EDB-ODBCDriverFunctionality¶
ODBC関数を使用して、EDB-ODBCとサーバー間の接続のさまざまな属性に関する特定の情報をODBCに照会できます。
SQLGetInfo()はEDB-ODBCドライバーとAdvancedServerに関する情報を返します。SQLGetEnvAttr()は、ODBC環境属性に関する情報を返します。SQLGetConnectAttr()は、個々の接続に固有の属性に関する情報を返します。SQLGetStmtAttr()は、個々のステートメントに固有の属性に関する情報を返します。
ODBC関数を使用して、ODBCとのインターフェースに使用するオブジェクトのさまざまな属性を設定することもできます。
接続属性を設定するには、
SQLSetConnectAttr()関数を使用します。環境属性を設定するには
SQLSetEnvAttr()関数を使用します。ステートメント属性を設定するには、
SQLSetStmtAttr()関数を使用します。
SQLGetInfo()¶
The ODBC SQLGetInfo() function returns information about the EDB-ODBC
driver and Advanced Server. You must have an open connection to call
SQLGetInfo(), unless you specify SQL_ODBC_VER as the info_type. The
signature for SQLGetInfo() is:
SQLRETURN SQLGetInfo
(
SQLHDBC *conn_handle*, // Input
SQLUSMALLINT *info_type*, // Input
SQLPOINTER *info_pointer*, // Output
SQLSMALLINT *buffer_len*, // Input
SQLSMALLINT \*\ *string_length_pointer* // Output
);
conn_handle
接続ハンドル。
info_type
SQLGetInfo()が取得している情報のタイプ。
info_pointer
取得した値を保持するメモリバッファへのポインタ。
info_type 引数が SQL_DRIVER_HDESC または SQL_DRIVER_HSTMT の場合、 info_pointer 引数は Input と Output の両方になります。
buffer_len
buffer_len is the length of the allocated memory buffer pointed to by
info_pointer. If info_pointer is NULL, buffer_len is ignored. If
the returned value is a fixed size, buffer_len is ignored.
buffer_len is only used if the requested value is returned in the form
of a character string.
string_length_pointer
string_length_pointer は SQLSMALLINT 値へのポインタです。 SQLGetInfo() は、要求された値のサイズをこの整数に書き込みます。
A typical usage is to call SQLGetInfo() with a NULL info_pointer to
obtain the length of the requested value, allocate the required number
of bytes, and then call SQLGetInfo() again (providing the address of the
newly allocated buffer) to obtain the actual value. The first call
retrieves the number of bytes required to hold the value; the second
call retrieves the value.
返される値のサイズが buffer_len を超える場合、情報は切り捨てられ、 NULL が終了します。返される値が固定サイズの場合、 string_length は無視されます(要求された値のサイズは SQLGetInfo() によって提供されません)。
SQLGetInfo() は、次の形式のいずれかで情報を書き込みます。
SQLUINTEGERビットマスクSQLUINTEGERフラグSQLUINTEGERバイナリ値SQLUSMALLINT値NULLで終了した文字列
SQLGetInfo() は、 SQL_SUCCESS 、 SQL_SUCCESS_WITH_INFO 、 SQL_ERROR 、または SQL_INVALID_HANDLE を返します。
次の表に、AdvancedServer接続に関してEDB-ODBCによって返される情報を示します。
SQLinfo_typeの引数と説明 |
EDB_ODBC/AdvancedServerが返します: |
|---|---|
SQL_ACCESSIBLE_PROCEDURES:SQLProcedures()によって返されたプロシージャをアプリケーションで実行できるかどうかを示します。 |
Nを返します。SQLProcedures()関数によって実行される一部のプロシージャは、アプリケーションによって実行される場合があります。 |
SQL_ACCESSIBLE_TABLES:ユーザーがSQLTables()によって返されるすべてのテーブル名に対するSELECT特権を持っているかどうかを示します。 |
Nを返します。ユーザーは、SQLTables()関数によって返された1つ以上のテーブルに対する選択特権を持っていない可能性があります。 |
SQL_ACTIVE_CONNECTIONS前SQL_MAX_DRIVER_CONNECTIONS:EDB-ODBCがサポートできる接続の最大数を示します。 |
0を返します。許可される接続の数に制限はありません。 |
SQL_ACTIVE_ENVIRONMENTS:EDB-ODBCがサポートできるアクティブな環境の数。 |
0を返します。許可される環境の数に制限はありません。 |
SQL_ACTIVE_STATEMENTS前SQL_MAX_CONCURRENT_ACTIVITIES:EDB-ODBCがサポートできるアクティブなステートメントの最大数を示します。 |
0を返します。許可されるアクティブなステートメントの数に制限はありません。 |
SQL_AGGREGATE_FUNCTION:サーバーおよびドライバーがサポートする集約関数を識別します。 |
SQL_AF_ALLを返します |
SQL_ALTER_DOMAIN:サーバーでサポートされているALTERDOMAIN句を識別します。 |
0を返します。ALTERDOMAIN句はサポートされていません。 |
SQL_ALTER_TABLE:サーバーでサポートされているALTERTABLE句を識別します。 |
SQL_AT_ADD_COLUMN、SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE、SQL_AT_DROP_TABLE_CONSTRAINT、SQL_AT_CONSTRAINT_INITIALLY_DEFERRED、SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE、SQL_AT_CONSTRAINT_DEFERRABLEを返します |
SQL_ASYNC_MODE:EDB-ODBCがサポートする非同期モードのレベル。 |
SQL_AM_NONEを返します。非同期モードはサポートされていません。 |
SQL_BATCH_ROW_COUNT:ドライバーが行カウントを返す方法を示します。 |
SQL_BRC_EXPLICITを返します。行カウントは、SQLExecuteまたはSQLExecDirectを呼び出して実行すると使用できます。 |
SQL_BATCH_SUPPORT:バッチステートメントの実行のサポートを示します。 |
戻り値:SQL_BS_SELECT_EXPLICIT、SQL_BS_ROW_COUNT_EXPLICIT。ドライバーは、結果セットと行カウント生成ステートメントを使用した明示的なバッチをサポートします。 |
SQL_BOOKMARK_PERSISTENCE:ブックマークのサポートのレベルを示します。 |
戻り値:SQL_BP_DELETE、SQL_BP_TRANSACTION、SQL_BP_UPDATE、SQL_BP_SCROLL。 |
SQL_CATALOG_LOCATIONNowSQL_QUALIFIER_LOCATION:修飾されたテーブル名内のカタログの位置を示します。 |
SQL_CL_STARTを返します。修飾テーブル名のカタログ部分は、名前の先頭にあります。 |
SQL_CATALOG_NAMENowSQL_QUALIFIER_NAME:カタログ名のサポートを示します。 |
Yを返します。サーバーはカタログ名をサポートします。 |
SQL_CATALOG_NAME_SEPARATOR現在SQL_QUALIFIER_NAME_SEPARATOR:カタログ名を隣接する名前要素から分離する文字。 |
|
SQL_CATALOG_TERM今SQL_QUALIFIER_TERM:カタログを記述するために使用される用語。 |
カタログを返します。 |
SQL_CATALOG_USAGENowSQL_QUALIFIER_USAGE:カタログを参照するSQLステートメントを示します。 |
SQL_CU_DML_STATEMENTSを返します。カタログ名は、SELECT、INSERT、UPDATE、DELETE、SELECTFORUPDATE、および位置決めされたUPDATEおよびDELETEステートメントで使用できます。 |
SQL_COLLATION_SEQ:照合シーケンスの名前を返します。 |
空の文字列を返します。デフォルトの照合の名前は不明です。 |
SQL_COLUMN_ALIAS:サーバーが列エイリアスをサポートすることを示します。 |
Yを返します。サーバーは列エイリアスをサポートします。 |
SQL_CONCAT_NULL_BEHAVIOR:サーバーがNULL値の連結を処理する方法を示します。 |
SQL_CB_NON_NULLを返します。NULL値と非NULL値を連結すると、NULL値になります。 |
SQL_CONVERT_BIGINT:CONVERT関数を使用したBIGINTタイプからの変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_BINARY:CONVERT関数を使用したBINARYタイプからの変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_BIT:CONVERT関数を使用したBIT型からの変換サポートを示します。 |
戻り値:SQL_CVT_INTEGER、SQL_CVT_BIT。 |
SQL_CONVERT_CHAR:CONVERT関数を使用したCHAR型からの変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_DATE:CONVERT関数を使用したDATE型からの変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_DECIMAL:CONVERT関数を使用したDECIMALタイプからの変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_DOUBLE:CONVERT関数を使用したDOUBLE型からの変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_FLOAT:CONVERT関数を使用したFLOAT型からの変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_FUNCTIONS:CONVERT関数を使用してサーバーとドライバーがサポートするスカラー変換関数をリストします。 |
戻り値:SQL_FN_CVT_CONVERT。 |
SQL_CONVERT_INTEGER:CONVERT関数を使用して、INTEGER型からの変換サポートをリストします。 |
戻り値:SQL_CVT_INTEGER、SQL_CVT_BIT。 |
SQL_CONVERT_INTERVAL_DAY_TIME:CONVERT関数を使用したINTERVAL_DAY_TIMEタイプからの変換サポートを示します。 |
このinfo_typeは現在サポートされていません。 |
SQL_CONVERT_INTERVAL_YEAR_MONTH:CONVERT関数を使用したINTERVAL_YEAR_MONTHタイプからの変換サポートを示します。 |
このinfo_typeは現在サポートされていません。 |
SQL_CONVERT_LONGVARBINARY:CONVERT関数を使用したLONG_VARBINARYタイプの変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_LONGVARCHAR:CONVERT関数を使用したLONGVARCHAR型の変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_NUMERIC:CONVERT関数を使用したNUMERIC型の変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_REAL:CONVERT関数を使用したREALタイプの変換サポートを示します |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_SMALLINT:CONVERT関数を使用したSMALLINTタイプの変換サポートを示します。 |
戻り値:SQL_CVT_INTEGER、SQL_CVT_BIT。 |
SQL_CONVERT_TIME:CONVERT関数を使用したTIME型の変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CVT_TIMESTAMP:CONVERT関数を使用したTIMESTAMP型の変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_TINYINT:CONVERT関数を使用したTINYINT型の変換サポートを示します。 |
戻り値:SQL_CVT_INTEGER、SQL_CVT_BIT。 |
SQL_CONVERT_VARBINARY:CONVERT関数を使用したVARBINARYタイプの変換サポートを示します。 |
0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_VARCHAR:CONVERT関数を使用したVARCHARタイプの変換サポートを示します。 |
戻り値:SQL_CVT_INTEGER、SQL_CVT_BIT。 |
SQL_CONVERT_WCHAR:CONVERT関数を使用したWCHAR型の変換サポートを示します。 |
このinfo_typeは、Unicodeドライバーを使用する場合にのみ有効です。0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_WLONGVARCHAR:CONVERT関数を使用したWLONGVARCHAR型の変換サポートを示します。 |
このinfo_typeは、Unicodeドライバーを使用する場合にのみ有効です。0を返します。サーバーは変換をサポートしていません。 |
SQL_CONVERT_WVARCHAR:CONVERT関数を使用したWVARCHARタイプの変換サポートを示します。 |
このinfo_typeは、Unicodeドライバーを使用する場合にのみ有効です。0を返します。サーバーは変換をサポートしていません。 |
SQL_CORRELATION_NAME:サーバーが相関名をサポートすることを示します。 |
SQL_CN_ANYを返します。相関名はサポートされており、任意の有効な名前にすることができます。 |
SQL_CREATE_ASSERTION:CREATEASSERTIONステートメントのサポートを示します。 |
0を返します。CREATEASSERTIONステートメントはサポートされていません。 |
SQL_CREATE_CHARACTER_SET:CREATECHARACTERステートメントのサポートを示します。 |
0を返します。CREATECHARACTERステートメントはサポートされていません。 |
SQL_CREATE_COLLATION:CREATECOLLATIONのサポートを示します。 |
0を返します。CREATECOLLATIONステートメントはサポートされていません。 |
SQL_CREATE_DOMAIN:CREATEDOMAINステートメントのサポートを示します。 |
0を返します。CREATEDOMAINステートメントはサポートされていません。 |
SQL_CREATE_SCHEMA:CREATESCHEMAステートメントのサポートを示します。 |
戻り値:SQL_CS_CREATE_SCHEMA、SQL_CS_AUTHORIZATION。 |
SQL_CREATE_TABLE:CREATETABLEステートメントのサポートを示します。 |
戻り値:SQL_CT_CREATE_TABLE、SQL_CT_GLOBAL_TEMPORARY、SQL_CT_CONSTRAINT_INITIALLY_DEFERRED、SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE、SQL_CT_CONSTRAINT_DEFERRABLE、SQL_CT_COLUMN_CONSTRAINT、SQL_CT_COLUMN_DEFAULT、SQL_CT_CON_TRA_TABLE |
SQL_CREATE_TRANSLATION:CREATETRANSLATIONステートメントのサポートを示します。 |
0を返します。CREATETRANSLATIONステートメントはサポートされていません。 |
SQL_CREATE_VIEW:CREATEVIEWステートメントのサポートを示します。 |
SQL_CV_CREATE_VIEWを返します。 |
SQL_CURSOR_COMMIT_BEHAVIOR:COMMIT操作がカーソルに与える影響を示します。 |
SQL_CB_PRESERVEを返します。カーソルは変更されず、データのフェッチを継続できます。 |
SQL_CURSOR_ROLLBACK_BEHAVIOR:ROLLBACK操作後のサーバーの動作を示します。 |
SQL_CB_PRESERVEを返します。カーソルは変更されず、データのフェッチを継続できます。 |
SQL_CURSOR_SENSITIVITY:サーバーが変更を結果セットに同期する方法を示します。 |
このinfo_typeは現在サポートされていません。 |
SQL_DATA_SOURCE_NAME:接続中に使用されるサーバー名を返します。 |
返される値は、接続プロパティによって決まります。 |
SQL_DATA_SOURCE_READ_ONLY:接続が読み取り専用モードかどうかを示します。 |
返される値は、接続プロパティによって決まります。 |
SQL_DATABASE_NAME:データベースの名前を返します。 |
返される値は、接続プロパティによって決まります。 |
SQL_DATETIME_LITERALS:サーバーでサポートされているDATETIMELITERALSを示します。 |
このinfo_typeはサポートされていません。 |
SQL_DBMS_NAME:DBMSシステムの名前を返します。 |
Linuxのodbc.iniファイルのdbms_nameパラメーター、またはWindowsでデータソースを定義するときに[詳細オプション]ダイアログボックスの2ページ目のdbms_nameフィールドで指定された値を返します。デフォルトはEnterpriseDBです。 |
SQL_DBMS_VER:サーバーのバージョンを返します。 |
サーバーによって決定されます。 |
SQL_DDL_INDEX:インデックスの作成と削除のサポートを示します。 |
戻り値:SQL_DI_CREATE_INDEX、SQL_DI_DROP_INDEX。 |
SQL_DEFAULT_TXN_ISOLATION:サーバーによるトランザクション分離のサポートを示します。 |
TXN_READ_COMMITTEDを返します。繰り返し不可または幻の読み取りが可能です。ダーティリードはそうではありません。 |
SQL_DESCRIBE_PARAMETER:DESCRIBEINPUTステートメントのサポートを示します。 |
Nを返します。DESCRIBEINPUTステートメントはサポートされていません。 |
SQL_DM_VER:ドライバーマネージャーのバージョン。 |
ドライバーマネージャーによって決定されます。 |
SQL_DRIVER_HDBC:ドライバーの接続ハンドル。 |
ドライバーの接続ハンドルを含むSQLULEN値を返します。 |
SQL_DRIVER_HDESC:ドライバー記述子ハンドル。 |
ドライバーの記述子ハンドルを含むSQLULEN値を返します。 |
SQL_DRIVER_HENV:ドライバーの環境ハンドル。 |
ドライバーの環境ハンドルを含むSQLULEN値を返します。 |
SQL_DRIVER_HLIB:ドライバーハンドル。 |
ライブラリハンドルを含むSQLULEN値を返します(マネージャーがドライバーをロードしたときにODBCドライバーマネージャーに返されます)。 |
SQL_DRIVER_HSTMT:ドライバーのステートメントハンドル。 |
ドライバーのステートメントハンドルを含むSQLULEN値を返します。 |
SQL_DRIVER_NAME:ドライバーの名前。 |
EDB-ODBC.DLLを返します |
SQL_DRIVER_ODBC_VER:ドライバーがサポートするODBCバージョンを識別します。 |
03.50を返します |
SQL_DRIVER_VER:ドライバーのバージョンを識別します。 |
9.0.0.6を返します |
SQL_DROP_ASSERTION:サーバーでサポートされているDROPASSERTION句をリストします。 |
0を返します |
SQL_DROP_CHARACTER_SET:サーバーがサポートするDROPCHARACTER句をリストします。 |
0を返します |
SQL_DROP_COLLATION:サーバーでサポートされているDROPCOLLATION句をリストします。 |
0を返します |
SQL_DROP_DOMAIN:サーバーでサポートされているDROPDOMAIN句をリストします。 |
0を返します |
SQL_DROP_SCHEMA:サーバーでサポートされているDROPSCHEMA句をリストします。 |
戻り値:SQL_DS_DROP_SCHEMA、SQL_DS_RESTRICT、SQL_DS_CASCADE。 |
SQL_DROP_TABLE:サーバーでサポートされているDROPTABLE句をリストします。 |
戻り値:SQL_DT_DROP_TABLE、SQL_DS_RESTRICT、SQL_DS_CASCADE。 |
SQL_DROP_TRANSLATION:サーバーでサポートされているDROPTRANSLATION句をリストします。 |
0を返します。 |
SQL_DROP_VIEW:サーバーでサポートされているDROPVIEW句をリストします。 |
戻り値:SQL_DV_DROP_VIEW、SQL_DS_RESTRICT、SQL_DS_CASCADE。 |
SQL_DYNAMIC_CURSOR_ATTRIBUTES1:ドライバーがサポートする動的カーソル属性の最初のセットを記述します。 |
0を返します |
SQL_DYNAMIC_CURSOR_ATTRIBUTES2:ドライバーがサポートする動的カーソル属性の2番目のセットについて説明します。 |
0を返します |
SQL_EXPRESSIONS_IN_ORDERBY:ORDERBYのサーバーサポートを示します。 |
Yを返します。 |
SQL_FETCH_DIRECTION:FETCH順序オプションを示します(ODBC3.0では非推奨)。 |
戻り値:SQL_FD_FETCH_NEXT、SQL_FD_FETCH_FIRS、SQL_FD_FETCH_LAST、SQL_FD_FETCH_PRIOR、SQL_FD_FETCH_ABSOLUTE、SQL_FD_FETCH_RELATIVE、SQL_FD_FETCH_BOOKMARK。 |
SQL_FILE_USAGE:単一層ドライバーがサーバー上のファイルを処理する方法を示します。 |
SQL_FILE_NOT_SUPPORTEDを返します。ドライバーは単一層ファイルではありません。 |
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1:ドライバーがサポートする順方向専用カーソル属性について説明します。 |
SQL_CA1_NEXTを返します。 |
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2:SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1で指定された順方向専用カーソルの拡張属性について説明します。 |
戻り値:SQL_CA2_READ_ONLY_CONCURRENCY、SQL_CA2_CRC_EXACT。 |
SQL_GETDATA_EXTENSIONS:SQLGetDataのサポートされている拡張機能をリストします。 |
戻り値:SQL_GD_ANY_COLUMN、SQL_GD_ANY_ORDER、SQL_GD_BLOCK、SQL_GD_BOUND。 |
SQL_GROUP_BY:GROUPBY句とSELECTリストの列の関係を示します。 |
SQL_GB_GROUP_BY_EQUALS_SELECTを返します。 |
SQL_IDENTIFIER_CASE:SQL識別子の大文字と小文字の区別と大文字と小文字の区別を示します。 |
SQL_IC_LOWERを返します。 |
SQL_INDEX_KEYWORDS:CREATEINDEXステートメントのサポートを示します。 |
SQL_IK_NONEを返します。 |
SQL_INFO_SCHEMA_VIEWS:INFORMATION_SCHEMAでサポートされているビューをリストします。 |
0を返します。 |
SQL_INTEGRITYSQL_ODBC_SQL_OPT_IEF:参照整合性構文チェックのサーバーサポートを示します。 |
Nを返します。 |
SQL_INSERT_STATEMENT:INSERTステートメントのサポートのレベルを示します。 |
戻り値:SQL_IS_INSERT_LITERALS、SQL_IS_INSERT_SEARCHED、SQL_IS_SELECT_INTO。 |
SQL_KEYSET_CURSOR_ATTRIBUTES1:ドライバーがサポートするキーセットカーソル属性の最初のセットを記述します。 |
戻り値:SQL_CA1_NEXT、SQL_CA1_ABSOLUTE、SQL_CA1_RELATIVE、SQL_CA1_BOOKMARK、SQL_CA1_LOCK_NO_CHANGE、SQL_CA1_POS_POSITION、SQL_CA1_POS_UPDATE、SQL_CA1_POS_DELETE、SQL_CA1_POS_REF_BU__________ |
SQL_KEYSET_CURSOR_ATTRIBUTES2:ドライバーでサポートされているキーセットカーソル属性の2番目のセットについて説明します。 |
戻り値:SQL_CA2_READ_ONLY_CONCURRENCY、SQL_CA2_OPT_ROWVER_CONCURRENCY、SQL_CA2_SENSITIVITY_ADDITIONS、SQL_CA2_SENSITIVITY_DELETIONS、SQL_CA2_SENSITIVITY_UPDATES、SQL_CA2_CRC_EXACT。 |
SQL_KEYWORDS:サーバー固有の予約キーワードを識別します。 |
|
SQL_LIKE_ESCAPE_CLAUSE:LIKE述部でのエスケープ文字のサポートを示します。 |
Nを返します。AdvancedServerは、LIKE述部のエスケープ文字をサポートしていません。 |
SQL_LOCK_TYPES:サポートされているロックタイプをリストします(ODBC3.0では非推奨)。 |
SQL_LCK_NO_CHANGEを返します。 |
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS:ドライバーがサポートできるアクティブな並行ステートメントの数。 |
このinfo_typeは現在サポートされていません。 |
SQL_MAX_BINARY_LITERAL_LEN:バイナリリテラルの最大長。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_CATALOG_NAME_LEN:サーバー上のカタログ名の最大長。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_QUALIFIER_NAME_LEN:修飾子の最大長。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_CHAR_LITERAL_LEN:文字ストリングの最大文字数。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_COLUMN_NAME_LEN:列名の最大長。 |
64を返します。列名の長さは64文字を超えることはできません。 |
SQL_MAX_COLUMNS_IN_GROUP_BY:GROUPBY句で許可される列の最大数。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_COLUMNS_IN_INDEX:インデックスで許可される列の最大数。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_COLUMNS_IN_ORDER_BY:ORDERBY句で許可される列の最大数。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_COLUMNS_IN_SELECT:SELECTリストで許可される列の最大数。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_COLUMNS_IN_TABLE:テーブルで許可される列の最大数。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_CONCURRENT_ACTIVITIES前SQL_MAX_ACTIVE_STATEMENTS:ドライバーがサポートできるアクティブなSQLステートメントの最大数。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_CURSOR_NAME_LEN:カーソル名の最大長。 |
32を返します。カーソル名の長さは32文字を超えることはできません。 |
SQL_MAX_DRIVER_CONNECTIONS前SQL_ACTIVE_CONNECTIONS:ドライバーがサポートできるアクティブな接続の最大数。 |
0を返します。サポートされる接続の数に制限はありません。 |
SQL_MAX_IDENTIFIER_LEN:サーバーが許可する最大識別子長。 |
64を返します。識別子の長さは64文字を超えることはできません。 |
SQL_MAX_INDEX_SIZE:インデックスの(結合された)フィールドで許可される最大バイト数。 |
0を返します。最大サイズは指定されていません。 |
SQL_MAX_OWNER_NAME_LENNowSQL_MAX_SCHEMA_NAME_LEN:サーバーが許可する所有者名の最大長。 |
64を返します。所有者名の最大長は64文字です。 |
SQL_MAX_PROCEDURE_NAME_LEN:サーバーが許可するプロシージャー名の最大長。 |
0を返します。最大長は指定されていません。 |
SQL_MAX_QUALIFIER_NAME_LENSQL_MAX_CATALOG_NAME_LEN:サーバーが許可する修飾子名の最大長。 |
0を返します。修飾子の最大長は指定されていません。 |
SQL_MAX_ROW_SIZE:行の最大長。 |
0を返します。最大行長は指定されていません。 |
SQL_MAX_ROW_SIZE_INCLUDES_LONG:SQL_MAX_ROW_SIZEに行のLONGVARCHARまたはLONGVARBINARY列の長さが含まれるかどうかを示します。 |
Yを返します。SQL_MAX_ROW_SIZEには、行のLONGVARCHARまたはLONGVARBINARY列の長さが含まれます。 |
SQL_MAX_SCHEMA_NAME_LEN:サーバーが許可するスキーマ名の最大長。 |
64を返します。スキーマ名の最大長は64文字です。 |
SQL_MAX_STATEMENT_LEN:SQLステートメントの最大長。 |
0を返します。ステートメントの最大長は、使用可能なメモリによって制限されます。 |
SQL_MAX_TABLE_NAME_LEN:サーバーが許可するテーブル名の最大長。 |
64を返します。テーブル名の最大長は64文字です。 |
SQL_MAX_TABLES_IN_SELECT:SELECTステートメントのFROM節で許可されるテーブルの最大数。 |
0を返します。許可されるテーブルの最大数は指定されていません。 |
SQL_MAX_USER_NAME_LEN:サーバーが許可するユーザー名の最大長。 |
0を返します。ユーザー名の最大長は指定されていません。 |
SQL_MULT_RESULT_SETS:サーバーが複数の結果セットをサポートすることを示します。 |
Yを返します。AdvancedServerは複数の結果セットをサポートしています。 |
SQL_MULTIPLE_ACTIVE_TXN:サーバーが複数のアクティブなトランザクションをサポートするかどうかを示します。 |
Yを返します。AdvancedServerは複数のアクティブなトランザクションをサポートします。 |
SQL_NEED_LONG_DATA_LEN:サーバーが値を受け取る前にLONGデータ値の長さが必要かどうかを示します。 |
Nを返します。AdvancedServerは、値を受け取る前にLONGデータ値の長さを必要としません。 |
SQL_NON_NULLABLE_COLUMNS:サーバーが列でNOTNULL値をサポートするかどうかを示します。 |
SQL_NNC_NON_NULLを返します。AdvancedServerは、列のNOTNULL値をサポートします。 |
SQL_NULL_COLLATION:結果セット内のNULL値の場所を示します。 |
SQL_NC_HIGHを返します。データセット内のNULL値の場所は、ASCおよびDESCキーワードによって決まります。NULL値は、データセットの上位に並べ替えられます。 |
SQL_NUMERIC_FUNCTIONS:ドライバーとサーバーでサポートされている数値関数をリストします。 |
戻り値:SQL_FN_NUM_ABS、SQL_FN_NUM_ATAN、SQL_FN_NUM_CEILING、SQL_FN_NUM_COS、SQL_FN_NUM_EXP、SQL_FN_NUM_FLOOR、SQL_FN_NUM_LOG、SQL_FN_NUM_MOD、SQL_FN_NUM_SIGN、SQL_FN_NUM_SIN、SQL_FN_NUM_SQRT、SQL_FN_NUM_TAN、SQL_FN_NUM_RAND、SQL_FN_NUM_POWER、SQL_FN_NUM_ROUND。 |
SQL_ODBC_API_CONFORMANCE:ODBC3.0準拠レベルを示します |
SQL_OAC_LEVEL1を返します。このドライバーは、ODBCレベル1インターフェースに準拠しています。 |
SQL_ODBC_INTERFACE_CONFORMANCE:ドライバーが従うODBCインターフェースを示します。 |
SQL_OIC_COREを返します。 |
SQL_ODBC_SAG_CLI_CONFORMANCE:ドライバーが順守するSQLアクセスグループのコンプライアンスレベルを示します。 |
SQL_OSCC_NOT_COMPLIANTを返します。ドライバーはSAGCLIに準拠していません。 |
SQL_ODBC_SQL_CONFORMANCE:ドライバーが準拠するSQL文法レベルを示します。 |
SQL_OSC_COREを返します。ドライバーはコアグラマーレベルに準拠しています。 |
SQL_ODBC_SQL_OPT_IEFNowSQL_INTEGRITY:参照整合性構文チェックのサーバーサポートを示します。 |
Nを返します。サーバーは、参照整合性構文チェックをサポートしていません。 |
SQL_ODBC_VER:ドライバーマネージャーでサポートされているODBCバージョン |
03.52.0000を返します。 |
SQL_OJ_CAPABILITIES:サーバーでサポートされている外部結合を識別します。 |
戻り値:SQL_OJ_LEFT、SQL_OJ_RIGHT、SQL_OJ_FULL、SQL_OJ_NESTED、SQL_OJ_NOT_ORDERED、SQL_OJ_INNER、SQL_OJ_ALL_COMPARISON_OPS。 |
SQL_OUTER_JOINS:外部結合および外部結合エスケープシーケンスのサポートを示します。 |
Yを返します。外部結合がサポートされています。 |
SQL_OWNER_TERM前SQL_SCHEMA_TERM:スキーマを記述するために使用される用語。 |
スキーマを返します。 |
SQL_ORDER_BY_COLUMNS_IN_SELECT:ORDERBY句の列をSELECTリストに含める必要があるかどうかを示します。 |
Nを返します。ORDERBY句の列は、SELECTリストにある必要はありません。 |
SQL_OWNER_USAGE前SQL_SCHEMA_USAGE:スキーマ修飾子をサポートするステートメントを示す文字列を返します。 |
戻り値:SQL_OU_DML_STATEMENTS、SQL_OU_TABLE_DEFINITION、SQL_OU_INDEX_DEFINITION、SQL_OU_PRIVILEGE_DEFINITION。 |
SQL_PARAM_ARRAY_ROW_COUNTS:少なくとも1つのパラメーターが配列にバインドされているパラメーター化ステートメントを実行するときに、サーバーが配列の各要素に対して単一の行カウントを返すか、個別の行カウントを返すかを示します。 |
配列内の要素ごとに個別の行カウントが使用可能な場合、SQL_PARC_BATCHを返します。SQL_PARC_NO_BATCH単一の累積行カウントが配列全体で使用可能な場合。 |
SQL_PARAM_ARRAY_SELECTS:少なくとも1つのパラメーターが配列にバインドされたパラメーター化ステートメントを実行するときに、サーバーが配列内の各要素に対して1つの結果セットまたは個別の結果セットを返すかどうかを示します(または、ドライバーがこの機能を許可しない場合)。 |
SQL_PAS_BATCHを返します。配列内の要素ごとに1つのデータセットを使用できます。 |
SQL_POS_OPERATION:SQLSetPos()でサポートされているオプションをリストします。 |
戻り値:SQL_POS_POSITION、SQL_POS_REFRESH、SQL_POS_UPDATE、SQL_POS_DELETE、SQL_POS_ADD。 |
SQL_POSITIONED_STATEMENTS:サポートされている配置済みSQLステートメントをリストします。 |
戻り値:SQL_PS_POSITIONED_DELETE、SQL_PS_POSITIONED_UPDATE、SQL_PS_SELECT_FOR_UPDATE。 |
SQL_PROCEDURE_TERM:プロシージャの説明に使用される用語。 |
返品手続き。 |
SQL_PROCEDURES:サーバーとドライバーがSQLプロシージャーとプロシージャー呼び出し構文をサポートするかどうかを示します。 |
Yを返します。サーバーとドライバーは、プロシージャとプロシージャ呼び出し構文をサポートします。 |
SQL_QUALIFIER_LOCATION前SQL_CATALOG_LOCATION:修飾されたテーブル名におけるスキーマ名の位置を示します。 |
SQL_CL_STARTを返します。修飾テーブル名のカタログ部分は、名前の先頭にあります。 |
SQL_QUALIFIER_NAME前SQL_CATALOG_NAME:カタログ名のサーバーサポートを示します。 |
Yを返します。サーバーはカタログ名をサポートします。 |
SQL_QUALIFIER_NAME_SEPARATOR前SQL_CATALOG_NAME_SEPARATOR:修飾子名を隣接する名前要素から分離する文字。 |
|
SQL_QUALIFIER_TERM前SQL_CATALOG_TERM:修飾子の説明に使用される用語。 |
カタログを返します。 |
SQL_QUALIFIER_USAGE前SQL_CATALOG_USAGE:修飾子を参照する可能性のあるSQLステートメントを示します。 |
SQL_CU_DML_STATEMENTSを返します。カタログ名は、SELECT、INSERT、UPDATE、DELETE、SELECTFORUPDATE、および位置決めされたUPDATEおよびDELETEステートメントで使用できます。 |
SQL_QUALIFIER_USAGENowSQL_CATALOG_USAGE:修飾子名をサポートするDMLステートメントを識別します。 |
SQL_CU_DML_STATEMENTSを返します。修飾子はすべてのDMLステートメントで使用できます(SELECT、INSERT、UPDATE、DELETE、SELECTFORUPDATE)。 |
SQL_QUOTED_IDENTIFIER_CASE:引用識別子の大文字と小文字の区別を示します。 |
SQL_IC_SENSITIVEを返します。引用符付き識別子では大文字と小文字が区別されます。 |
SQL_QUALIFIER_NAME_SEPARATORSQLCATALOG_NAME_SEPARATOR:名前修飾子を名前要素から分離する文字。 |
|
SQL_QUALIFIER_TERM:修飾子の説明に使用される用語。 |
返品カタログ |
SQL_QUALIFIER_LOCATION:修飾されたテーブル名の修飾子の位置。 |
SQL_CL_STARTを返します。修飾子は、修飾テーブル名のテーブル名の前にあります。 |
SQL_ROW_UPDATES:キーセット駆動カーソルまたは混合カーソルが行のバージョンまたは値を維持するかどうかを示します。 |
Yを返します。カーソルはフェッチされたすべての行の値を保持し、行の値の更新を検出できます。 |
SQL_SCHEMA_TERM:スキーマを記述するために使用される用語。 |
スキーマを返します |
SQL_SCHEMA_USAGE:スキーマを参照するSQLステートメントを示します。 |
戻り値:SQL_OU_DML_STATEMENTS、SQL_OU_TABLE_DEFINITION、SQL_OU_INDEX_DEFINITION、SQL_OU_PRIVILEGE_DEFINITION。 |
SQL_SCROLL_CONCURRENCY:サーバーでサポートされているカーソルの同時実行制御オプションを示します。 |
戻り値:SQL_SCCO_READ_ONLY、SQL_SCCO_OPT_ROWVER。 |
SQL_SCROLL_OPTIONS:サーバーでサポートされているカーソルスクロールオプションを示します。 |
戻り値:SQL_SO_FORWARD_ONLY、SQL_SO_KEYSET_DRIVEN、SQL_SO_STATIC。 |
SQL_SEARCH_PATTERN_ESCAPE:検索パターンでワイルドカード文字%および_の使用を許可するエスケープ文字。 |
/を返します。 |
SQL_SERVER_NAME:ホストの名前を示します。 |
返される値は、接続プロパティによって決まります。 |
SQL_SPECIAL_CHARACTERS:識別子名に使用できる特殊文字を示します。 |
_を返します。アンダースコア文字は識別子名に使用できます。 |
SQL_SQL_CONFORMANCE:SQL-92準拠のレベルを示します。 |
SQL_SC_SQL92_ENTRYを返します。このドライバーは、SQL92エントリレベルに準拠しています。 |
SQL_SQL92_DATETIME_FUNCTIONS:サーバーでサポートされている日時関数をリストします。 |
戻り値:SQL_SDF_CURRENT_DATE、SQL_SDF_CURRENT_TIME、SQL_SDF_CURRENT_TIMESTAMP。 |
SQL_SQL92_FOREIGN_KEY_DELETE_RULE:DELETEステートメントで外部キーを使用するためのサーバー施行規則を示します。 |
戻り値:SQL_SFKD_CASCADE、SQL_SFKD_NO_ACTION、SQL_SFKD_SET_DEFAULT、SQL_SFKD_SET_NULL。 |
SQL_SQL92_FOREIGN_KEY_UPDATE_RULE:UPDATEステートメントで外部キーを使用するためのサーバー施行規則を示します。 |
戻り値:SQL_SFKU_CASCADE、SQL_SFKU_NO_ACTION、SQL_SFKU_SET_DEFAULT、SQL_SFKU_SET_NULL。 |
SQL_SQL92_GRANT:サポートされているGRANTステートメント句を示します。 |
戻り値:SQL_SG_DELETE_TABLE、SQL_SG_INSERT_TABLE、SQL_SG_REFERENCES_TABLE、SQL_SG_SELECT_TABLE、SQL_SG_UPDATE_TABLE。 |
SQL_SQL92_NUMERIC_VALUE_FUNCTIONS:サーバーとドライバーがサポートするスカラー数値関数をリストします。 |
戻り値:SQL_SNVF_BIT_LENGTH、SQL_SNVF_CHAR_LENGTH、SQL_SNVF_CHARACTER_LENGTH、SQL_SNVF_EXTRACT、SQL_SNVF_OCTET_LENGTH、SQL_SNVF_POSITION。 |
SQL_SQL92_PREDICATES、サーバーでサポートされているSELECTステートメントの述部を識別します。 |
戻り値:SQL_SP_EXISTS、SQL_SP_ISNOTNULL、SQL_SP_ISNULL、SQL_SP_OVERLAPS、SQL_SP_LIKE、SQL_SP_IN、SQL_SP_BETWEEN、SQL_SP_COMPARISON、SQL_SP_QUANTIFIED_COMPARISON。 |
SQL_SQL92_RELATIONAL_JOIN_OPERATORS:サーバーでサポートされているリレーショナル結合演算子を識別します。 |
戻り値:SQL_SRJO_CROSS_JOIN、SQL_SRJO_EXCEPT_JOIN、SQL_SRJO_FULL_OUTER_JOIN、SQL_SRJO_INNER_JOIN、SQL_SRJO_INTERSECT_JOIN、SQL_SRJO_LEFT_OUTER_IN_JOIN、SQL_SRJO_NATURAL_JOIN、SQL_SRJO_NATURALOINJOIN |
SQL_SQL92_REVOKE:サーバーでサポートされているREVOKEステートメント内の句を識別します。 |
戻り値:SQL_SR_DELETE_TABLE、SQL_SR_INSERT_TABLE、SQL_SR_REFERENCES_TABLE、SQL_SR_SELECT_TABLE、SQL_SR_UPDATE_TABLE。 |
SQL_SQL92_ROW_VALUE_CONSTRUCTOR:サーバーでサポートされているSELECTステートメント内の行値コンストラクター式を示します。 |
戻り値:SQL_SRVC_VALUE_EXPRESSION、SQL_SRVC_NULL。 |
SQL_SQL92_STRING_FUNCTIONS:サーバーとドライバーがサポートする文字列スカラー関数をリストします。 |
戻り値:SQL_SSF_CONVERT、SQL_SSF_LOWER、SQL_SSF_UPPER、SQL_SSF_SUBSTRING、SQL_SSF_TRANSLATE、SQL_SSF_TRIM_BOTH、SQL_SSF_TRIM_LEADING、SQL_SSF_TRIM_TRAILING。 |
SQL_SQL92_VALUE_EXPRESSIONS:サーバーでサポートされている値式を示します。 |
戻り値:SQL_SVE_CASE、SQL_SVE_CAST、SQL_SVE_COALESCE、SQL_SVE_NULLIF。 |
SQL_STANDARD_CLI_CONFORMANCE:ドライバーが準拠しているCLI標準を示します。 |
このinfo_typeは現在サポートされていません。 |
SQL_STATIC_CURSOR_ATTRIBUTES1:ドライバーがサポートする静的カーソル属性の最初のセットを記述します。 |
戻り値:SQL_CA1_NEXT、SQL_CA1_ABSOLUTE、SQL_CA1_RELATIVE、SQL_CA1_BOOKMARK、SQL_CA1_LOCK_NO_CHANGE、SQL_CA1_POS_POSITION、SQL_CA1_POS_UPDATE、SQL_CA1_POS_DELETE、SQL_CA1_POS_REF_BU__________ |
SQL_STATIC_CURSOR_ATTRIBUTES2:ドライバーがサポートする静的カーソル属性の2番目のセットについて説明します。 |
戻り値:SQL_CA2_READ_ONLY_CONCURRENCY、SQL_CA2_OPT_ROWVER_CONCURRENCY、SQL_CA2_SENSITIVITY_ADDITIONS、SQL_CA2_SENSITIVITY_DELETIONS、SQL_CA2_SENSITIVITY_UPDATES、SQL_CA2_CRC_EXACT。 |
SQL_STATIC_SENSITIVITY:SQLSetPos()またはUPDATEまたはDELETEステートメントによって静的カーソルに加えられた変更がアプリケーションによって検出されるかどうかを示します。 |
戻り値:SQL_SS_ADDITIONS、SQL_SS_DELETIONS、SQL_SS_UPDATES。 |
SQL_STRING_FUNCTIONS:サーバーとドライバーがサポートするスカラー文字列関数をリストします。 |
戻り値:SQL_FN_STR_CONCAT、SQL_FN_STR_LTRIM、SQL_FN_STR_LENGTH、SQL_FN_STR_LOCATE、SQL_FN_STR_LCASE、SQL_FN_STR_RTRIM、SQL_FN_STR_SUBSTRING、SQL_FN_STR_UCASE。 |
SQL_SUBQUERIES:サーバーでサポートされるSELECTステートメントのサブクエリ述語を識別します。 |
戻り値:SQL_SQ_COMPARISON、SQL_SQ_EXISTS、SQL_SQ_IN、SQL_SQ_QUANTIFIED。 |
SQL_SYSTEM_FUNCTIONS:サーバーとドライバーがサポートするスカラーシステム関数をリストします。 |
0を返します。 |
SQL_TABLE_TERM:表の説明に使用される用語。 |
テーブルを返します。 |
SQL_TIMEDATE_ADD_INTERVALS:TIMESTAMPADDスカラー関数についてサーバーがサポートするタイムスタンプ間隔を示します。 |
0を返します。 |
SQL_TIMEDATE_DIFF_INTERVALS:TIMESTAMPDIFFスカラー関数に対してサーバーがサポートするタイムスタンプ間隔を示します。 |
0を返します |
SQL_TIMEDATE_FUNCTIONS:サーバーでサポートされている日付と時刻の関数を示します。 |
戻り値:SQL_FN_TD_NOW、SQL_FN_TD_CURDATE、SQL_FN_TD_CURTIME。 |
SQL_TXN_CAPABLE:サーバーおよびドライバーによって提供されるトランザクションサポートを識別します。 |
SQL_TC_ALLを返します。トランザクションには、DMLステートメントとDDLステートメントの両方を含めることができます。 |
SQL_TXN_ISOLATION_OPTION:サーバーがサポートするトランザクション分離レベルを示します。 |
戻り値:SQL_TXN_READ_COMMITTED、SQL_TXN_SERIALIZABLE。 |
SQL_UNION:UNION句のサーバーサポートを示します。 |
戻り値:SQL_U_UNION、SQL_U_UNION_ALL。 |
SQL_USER_NAME:データベースに接続しているユーザーの名前を識別します。ログイン名とは異なる場合があります。 |
この値は、接続プロパティによって決定されます。 |
SQL_XOPEN_CLI_YEAR:ドライバーマネージャーが準拠しているX/Open仕様の発行年。 |
このinfo_typeは現在サポートされていません。 |
接続属性¶
ODBC SQLGetConnectAttr() および SQLSetConnectAttr() 関数を使用して、接続属性の値を取得または設定できます。
SQLGetConnectAttr()¶
SQLGetConnectAttr() 関数は、接続属性の現在の値を返します。署名は次のとおりです。
SQLRETURN SQLGetConnectAttr
(
SQLHDBC *conn_handle,* //Input
SQLINTEGER *attribute,* //Input
SQLPOINTER *value_pointer,* //Output
SQLINTEGER *buffer_length,* //Input
SQLINTEGER \*\ *string_length_pointer* //Output
);
conn_handle
接続ハンドル。
attribute
attribute は値を取得したい属性を識別します。
value_pointer
attribute 値を受け取るメモリ内の場所へのポインター。
buffer_length
If attribute is defined by ODBC and value_pointer points to a
character string or binary buffer, buffer_length is the length of
value_pointer. If value_pointer points to a fixed-size value (such
as an integer), buffer_length is ignored.
If EDB-ODBC defines the attribute, SQLGetConnectAttr() sets the
buffer_length parameter. buffer_length can be:
値タイプ |
意味 |
|---|---|
|
文字列の長さ |
|
SQL_LEN_BINARY_ATTR(length)の結果 |
|
SQL_IS_INTEGERまたはSQL_IS_UINTEGER |
|
SQL_IS_POINTER |
string_length_pointer
value_pointer で返せるバイト数を受け取る SQLINTEGER へのポインター。 value_pointer が NULL の場合、 string_length_pointer は返されません。
この関数は、 SQL_SUCCESS 、 SQL_SUCCESS_WITH_INFO 、 SQL_NO_DATA 、 SQL_ERROR 、または SQL_INVALID_HANDLE を返します。
次の表に、EDB-ODBCでサポートされている接続属性を示します。
属性 |
サポートされていますか? |
注釈 |
|---|---|---|
SQL_ATTR_ACCESS_MODE |
|
SQL_MODE_READ_WRITE |
SQL_ATTR_ASYNC_ENABLE |
|
SQL_ASYNC_ENABLE_OFF |
SQL_ATTR_AUTO_IPD |
|
|
SQL_A_AUTOCOMMIT |
SQL_AUTOCOMMIT、SQL_AUTOCOMMIT_ON、SQL_AUTOCOMMIT_OFF |
|
SQL_ATTR_CONNECTION_TIMEOUT |
|
|
SQL_ATTR_CURRENT_CATALOG |
|
|
SQL_ATTR_DISCONNECT_BEHAVIOR |
|
|
SQL_ATTR_ENLIST_IN_DTC |
|
win32および条件付きコンパイルの場合 |
SQL_ATTR_ENLIST_IN_XA |
|
|
SQL_ATTR_LOGIN_TIMEOUT |
|
SQL_LOGIN_TIMEOUT |
SQL_ATTR_ODBC_CURSORS |
|
|
SQL_ATTR_PACKET_SIZE |
|
|
SQL_ATTR_QUIET_MODE |
|
|
SQL_ATTR_TRACE |
|
|
SQL_ATTR_TRACEFILE |
|
|
SQL_ATTR_TRANSLATE_LIB |
|
|
SQL_ATTR_TRANSLATE_OPTION |
|
|
SQL_ATTR_TXN_ISOLATION |
|
SQL_TXN_ISOLATION、SQL_DEFAULT_TXN_ISOLATION |
SQLSetConnectAttr()¶
ODBC SQLSetConnectAttr() 関数を使用して、接続属性の値を設定できます。関数のシグネチャは次のとおりです。
SQLRETURN SQLSetConnectAttr
(
SQLHDBC *conn_handle*, // Input
SQLINTEGER *attribute*, // Input
SQLPOINTER *value_pointer*, // Input
SQLINTEGER *string_length*, // Input
);
conn_handle
接続ハンドル
attribute
attribute は、値を設定する属性を識別します
value_pointer
attribute が想定する値へのポインター。
string_length
If attribute is defined by ODBC and value_pointer points to a binary
buffer or character string, string_length is the length of
value_pointer. If value_pointer points to a fixed-length value (such
as an integer), string_length is ignored.
If EDB-ODBC defines the attribute, the application sets the
string_length parameter. Possible string_length values are:
値のタイプ |
意味 |
|---|---|
|
文字ストリングまたはSQL_NTSの長さ |
|
SQL_LEN_BINARY_ATTR(length)の結果 |
|
SQL_IS_INTEGERまたはSQL_IS_UINTEGER |
|
SQL_IS_POINTER |
SQLSetConnectAttr() は SQL_SUCCESS 、 SQL_SUCCESS_WITH_INFO 、 SQL_ERROR 、 SQL_STILL_EXECUTING または SQL_INVALID_HANDLE を返します。
You can call SQLSetConnectAttr() any time after the connection handle is
allocated, until the time that the connection is closed with a call to
SQLFreeHandle(). All attributes set by the call persist until the call
to SQLFreeHandle().
接続属性には、設定可能な特定の時間枠があります。一部の属性は接続が確立される前に設定する必要がありますが、他の属性は接続が確立された後にのみ設定できます。
次の表に、接続属性と設定可能な時間枠を示します。
属性 |
接続を確立する前または後に設定しますか? |
|---|---|
SQL_ATTR_ACCESS_MODE |
前または後 |
SQL_ATTR_ASYNC_ENABLE |
前または後 |
SQL_ATTR_AUTO_IPD |
前または後 |
SQL_ATTR_AUTOCOMMIT |
前または後 |
SQL_ATTR_CONNECTION_TIMEOUT |
前または後 |
SQL_ATTR_CURRENT_CATALOG |
前または後 |
SQL_ATTR_ENLIST_IN_DTC |
後 |
SQL_ATTR_ENLIST_IN_XA |
後 |
SQL_ATTR_LOGIN_TIMEOUT |
前に |
SQL_ATTR_ODBC_CURSORS |
前に |
SQL_ATTR_PACKET_SIZE |
前に |
SQL_ATTR_QUIET_MODE |
前または後 |
SQL_ATTR_TRACE |
前または後 |
SQL_ATTR_TRACEFILE |
前または後 |
SQL_ATTR_TRANSLATE_LIB |
後 |
SQL_ATTR_TRANSLATE_OPTION |
後 |
SQL_ATTR_TXN_ISOLATION |
前または後 |
環境属性¶
ODBCの SQLGetEnvAttr() および SQLSetEnvAttr() 関数を使用して、環境属性の値を取得または設定できます。
SQLGetEnvAttr()¶
SQLGetEnvAttr() 関数を使用して、システムの環境属性の現在の値を見つけます。関数のシグネチャは次のとおりです。
SQLRETURN SQLGetConnectAttr
(
SQLHDBC *env_handle*, // Input
SQLINTEGER *attribute*, // Input
SQLPOINTER *value_ptr*, // Output
SQLINTEGER *buffer_length*, // Input
SQLINTEGER \*\ *string_length_pointer* // Output
);
env_handle
環境ハンドル。
attribute
attribute は値を取得したい属性を識別します。
value_pointer
attribute 値を受け取るメモリ内の場所へのポインター。
buffer_length
If the attribute is a character string, buffer_length is the length of
value_ptr. If the value of the attribute is not a character string,
buffer_length is unused.
string_length_pointer
value_pointer で返せるバイト数を受け取る SQLINTEGER へのポインター。 ``value_pointer* is NULL, `` string_length_pointer``が返されない場合。
この関数は、 SQL_SUCCESS 、 SQL_SUCCESS_WITH_INFO 、 SQL_NO_DATA 、 SQL_ERROR 、または SQL_INVALID_HANDLE を返します。
次の表に、EDB-ODBCでサポートされている環境属性を示します。
属性 |
サポートされていますか? |
制限? |
|---|---|---|
SQL_ATTR_CONNECTION_POOLING |
SQL_CP_ONE_PER_DRIVERまたはSQL_CP_OFF |
接続プロパティによって決定 |
SQL_ATTR_ODBC_VERSION |
(SQL_OV_ODBC3) (SQL_OV_ODBC2) |
なし |
SQL_ATTR_OUTPUT_NTS |
SQL_SUCCESS |
なし |
SQLSetEnvAttr()¶
SQLSetEnvAttr() 関数を使用して、環境属性の値を設定できます。関数のシグネチャは次のとおりです。
SQLRETURN SQLSetEnvAttr
(
SQLHENV *env_handle*, //Input
SQLINTEGER *attribute*, //Input
SQLPOINTER *value_pointer*, //Input
SQLINTEGER *string_length* //Input
);
env_handle
環境ハンドル。
attribute
attribute は、値を設定する属性を識別します。
value_pointer
A pointer to the value assigned to the attribute. The value will be a
NULL terminated character string or a 32 bit integer value depending on
the specified attribute.
string_length
If value_pointer is a pointer to a binary buffer or character string,
string_length is the length of value_pointer. If the value being
assigned to the attribute is a character, string_length is the length
of that character string. If value_pointer is NULL, string_length is
not returned. If value_pointer is an integer, string_length is
ignored.
SQLSetEnvAttr() は SQL_SUCCESS 、 SQL_INVALID_HANDLE 、 SQL_ERROR または SQL_SUCCESS_WITH_INFO を返します。
アプリケーションは、接続ハンドルを割り当てる前に SQLSetEnvAttr() を呼び出す必要があります。環境属性に適用されるすべての値は、接続に対して SQLFreeHandle() が呼び出されるまで持続します。ODBCバージョン3.xでは、複数の環境ハンドルを同時に割り当てることができます。
次の表に、 SQLSetAttr() で設定できる環境属性を示します。
属性 |
Value_pointerタイプ |
制限? |
|---|---|---|
SQL_ATTR_ODBC_VERSION |
32ビット整数 |
アプリケーションがSQLHENV引数を含む関数を呼び出す前に、この属性を設定します。 |
SQL_ATTR_OUTPUT_NTS |
32ビット整数 |
デフォルトはSQL_TRUEです。この属性をSQL_FALSEに設定する呼び出しは、SQL_ERROR/SQLSTATEHYC00(実装されていない機能)を返します。 |
ステートメント属性¶
ODBCの SQLGetStmtAttr() および SQLSetStmtAttr() 関数を使用して、ステートメント属性の値を取得および設定できます。
SQLGetStmtAttr()¶
SQLGetStmtAttr() 関数は、ステートメント属性の現在の値を返します。署名は次のとおりです。
SQLRETURN SQLGetConnectAttr
(
SQLHDBC *stmt_handle,* //Input
SQLINTEGER *attribute,* //Input
SQLPOINTER *value_ptr,* //Output
SQLINTEGER *buffer_length,* //Input
SQLINTEGER \*\ *string_length_pointer* //Output
);
stmt_handle
ステートメントハンドル
attribute
attribute は属性値です
value_pointer
attribute 値を受け取るメモリ内の場所へのポインター。
buffer_length
If the attribute is defined by ODBC, buffer_length is the length of
value_pointer (if value_pointer points to a character string or
binary buffer). If value_pointer points to an integer, buffer_length
is ignored.
If EDB-ODBC defines the attribute, the application sets the
buffer_length parameter. buffer_length can be:
値のタイプ |
意味 |
|---|---|
|
文字列の長さ |
|
SQL_LEN_BINARY_ATTR(length)の結果 |
|
SQL_IS_INTEGERまたはSQL_IS_UINTEGER |
|
SQL_IS_POINTER |
string_length_pointer
要求された値を保持するために必要なバイト数を受け取る SQLINTEGER へのポインター。 value_pointer がNULLの場合、 string_length_pointer は返されません。
この関数は SQL_SUCCESS 、 SQL_SUCCESS_WITH_INFO 、 SQL_ERROR または SQL_INVALID_HANDLE を返します。
次の表に、EDB-ODBCでサポートされているステートメント属性を示します。
属性 |
サポートされていますか? |
制限? |
|---|---|---|
SQL_ATTR_APP_PARAM_DESC |
|
|
SQL_ATTR_APP_ROW_DESC |
|
|
SQL_ATTR_ASYNC_ENABLE |
|
|
SQL_ATTR_CONCURRENCY |
|
SQL_CONCUR_READ_ONLY |
SQL_ATTR_CURSOR_SCROLLABLE |
|
|
SQL_ATTR_CURSOR_TYPE |
|
SQL_CURSOR_FORWARD_ONLY |
SQL_ATTR_CURSOR_SENSITIVITY |
|
SQL_INSENSITIVE |
SQL_ATTR_ENABLE_AUTO_IPD |
|
|
SQL_ATTR_FETCH_BOOKMARK_PTR |
|
|
SQL_ATTR_IMP_PARAM_DESC |
|
|
SQL_ATTR_IMP_ROW_DESC |
|
|
SQL_ATTR_KEYSET_SIZE |
|
|
SQL_ATTR_MAX_LENGTH |
|
|
SQL_ATTR_MAX_ROWS |
|
|
SQL_ATTR_METADATA_ID |
|
|
SQL_ATTR_NOSCAN |
|
|
SQL_ATTR_PARAM_BIND_OFFSET_PTR |
|
ODBCV2.0 |
SQL_ATTR_PARAM_BIND_TYPE |
|
|
SQL_ATTR_PARAM_OPERATION_PTR |
|
|
SQL_ATTR_PARAM_STATUS_PTR |
|
|
SQL_ATTR_PARAMS_PROCESSED_PTR |
|
|
SQL_ATTR_PARAMSET_SIZE |
|
|
SQL_ATTR_QUERY_TIMEOUT |
|
|
SQL_ATTR_RETRIEVE_DATA |
|
|
SQL_ATTR_ROW_BIND_OFFSET_PTR |
|
|
SQL_ATTR_ROW_BIND_TYPE |
|
|
SQL_ATTR_ROW_NUMBER |
|
|
SQL_ATTR_ROW_OPERATION_PTR |
|
|
SQL_ATTR_ROW_STATUS_PTR |
|
|
SQL_ATTR_ROWS_FETCHED_PTR |
|
|
SQL_ATTR_ROW_ARRAY_SIZE |
|
|
SQL_ATTR_SIMULATE_CURSOR |
|
|
SQL_ATTR_USE_BOOKMARKS |
|
|
SQL_ROWSET_SIZE |
|
。raw::ラテックス
/newpage
SQLSetStmtAttr()¶
SQLSetStmtAttr() 関数を使用して、環境属性の値を設定できます。署名は次のとおりです。
SQLRETURN SQLSetStmtAttr
(
SQLHENV *stmt_handle*, //Input
SQLINTEGER *attribute*, //Input
SQLPOINTER *value_pointer*, //Input
SQLINTEGER *string_length* //Input
);
stmt_handle
*stmt_handle*は環境ハンドルです。
attribute
attribute は、値を設定するステートメント属性を識別します。
value_pointer
value_pointer is a pointer to the location in memory that holds the
value that will be assigned to the attribute. value_pointer can be a
pointer to:
ヌル終了文字ストリング
バイナリバッファ
ドライバーによって定義された値
タイプ
SQLLEN、SQLULEN、またはSQLUSMALLINTの値
値ポインタは、オプションで次の値のいずれかを保持することもできます。
ODBC記述子ハンドル
SQLUINTEGER値SQLULEN値署名されたINTEGER(属性がドライバー固有の値である場合)
string_length
If attribute is defined by ODBC and value_pointer points to a binary
buffer or character string, string_length is the length of
value_pointer. If value_pointer points to an integer,
string_length is ignored.
If EDB-ODBC defines the attribute, the application sets the
string_length parameter. Possible string_length values are:
値のタイプ |
意味 |
|---|---|
文字列 |
文字ストリングまたはSQL_NTSの長さ |
バイナリバッファ |
SQL_LEN_BINARY_ATTR(length)の結果 |
固定長データ型 |
SQL_IS_INTEGERまたはSQL_IS_UINTEGER |
その他のタイプ |
SQL_IS_POINTER |
エラー処理¶
このガイドに記載されているODBC関数の診断情報は、ODBC SQLGetDiagRec() 関数を介して取得できます。
SQLGetDiagRec()¶
SQLGetDiagRec() 関数は、属性値を取得または設定するODBC関数によって書き込まれた診断レコードからステータスとエラー情報を返します。署名は次のとおりです。
。code-block::テキスト
SQLRETURNSQLGetDiagRec(
SQLSMALLINT*handle_type*、//入力
SQLHANDLE*handle*、//入力
SQLSMALLINT*record_number*、//入力
SQLCHAR//*SQLState_pointer、//出力
SQLINTEGER//*native_error_pointer、//出力
SQLCHAR//*error_text_pointer、//出力
SQLSMALLINT*buffer_length*、//入力
SQLSMALLINT/*text_length_pointer//出力
);
handle_type
handle 引数のハンドル型。 handle_type は次のいずれかでなければなりません:
SQL_HANDLE_ENVは環境ハンドルを指定します。SQL_HANDLE_STMTはステートメントハンドルを指定します。SQL_HANDLE_DBCは接続ハンドルを指定します。SQL_HANDLE_DESCは記述子ハンドルを指定します。
handle
属性エラーメッセージに関連付けられたハンドル。
record_number
アプリケーションが情報を探しているステータスレコード(1以上である必要があります)。
SQLState_pointer
レコードから SQLState エラーコードを受け取るメモリバッファへのポインタ。
native_error_pointer
データソースのネイティブエラーメッセージを受信するバッファーへのポインター( SQL_DIAG_NATIVE フィールドに含まれます)。
error_text_pointer
エラーテキスト( SQL_DIAG_MESSAGE_TEXT フィールドに含まれる)を受信するメモリバッファへのポインタ
buffer_length
error_text バッファーの長さ。
text_length_pointer
Pointer to the buffer that receives the size (in characters) of the
error_text_pointer field. If the number of characters in the
error_text_pointer parameter exceeds the number available (in
buffer_length), error_text_pointer will be truncated.
SQLGetDiagRec() は SQL_SUCCESS 、 SQL_ERROR 、 SQL_INVALID_HANDLE 、 SQL_SUCCESS_WITH_DATA または SQL_NO_DATA を返します。
サポートされているODBCAPI関数¶
次の表に、ODBCAPI関数を示します。APIがEDB-ODBCドライバーによってサポートされている場合、右側の列は Yes を指定します。ODBCの SQLGetFunctions() 関数(関数IDを SQL_API_ODBC3_ALL_FUNCTIONS に指定)を使用して、このリストの現在のバージョンを返します。
ODBCAPI関数名 |
EDB-ODBCでサポートされていますか? |
|---|---|
SQLAllocConnect() |
|
SQLAllocEnv() |
|
SQLAllocStmt() |
|
SQLBindCol() |
|
SQLCancel() |
|
SQLColAttributes() |
|
SQLConnect() |
|
SQLDescribeCol() |
|
SQLDisconnect() |
|
SQLError() |
|
SQLExecDirect() |
|
SQLExecute() |
|
SQLFetch() |
|
SQLFreeConnect() |
|
SQLFreeEnv() |
|
SQLFreeStmt() |
|
SQLGetCursorName() |
|
SQLNumResultCols() |
|
SQLPrepare() |
|
SQLRowCount() |
|
SQLSetCursorName() |
|
SQLSetParam() |
|
SQLTransact() |
|
SQLColumns() |
|
SQLDriverConnect() |
|
SQLGetConnectOption() |
|
SQLGetData() |
|
SQLGetFunctions() |
|
SQLGetInfo() |
|
SQLGetStmtOption() |
|
SQLGetTypeInfo() |
|
SQLParamData() |
|
SQLPutData() |
|
SQLSetConnectOption() |
|
SQLSetStmtOption() |
|
SQLSpecialColumns() |
|
SQLStatistics() |
|
SQLTables() |
|
SQLBrowseConnect() |
|
SQLColumnPrivileges() |
|
SQLDataSources() |
|
SQLDescribeParam() |
|
SQLExtendedFetch() |
|
SQLForeignKeys() |
|
SQLMoreResults() |
|
SQLNativeSQL() |
|
SQLNumParams() |
|
SQLParamOptions() |
|
SQLPrimaryKeys() |
|
SQLProcedureColumns() |
|
SQLProcedures() |
|
SQLSetPos() |
|
SQLSetScrollOptions() |
|
SQLTablePrivileges() |
|
SQLDrivers() |
|
SQLBindParameter() |
|
SQLAllocHandle() |
|
SQLBindParam() |
|
SQLCloseCursor() |
|
SQLColAttribute() |
|
SQLCopyDesc() |
|
SQLendTran() |
|
SQLFetchScroll() |
|
SQLFreeHandle() |
|
SQLGetConnectAttr() |
|
SQLGetDescField() |
|
SQLGetDescRec() |
|
SQLGetDiagField() |
|
SQLGetDiagRec() |
|
SQLGetEnvAttr() |
|
SQLGetStmtAttr() |
|
SQLSetConnectAttr() |
|
SQLSetDescField() |
|
SQLSetDescRec() |
|
SQLSetEnvAttr() |
|
SQLSetStmtAttr() |
|
SQLBulkOperations() |
|
サポートされているデータ型¶
EDB-ODBCは、次のODBCデータ型をサポートしています。
ODBCデータ型 |
対応するAdvancedServerデータ型 |
|---|---|
SQL_BIGINT |
PG_TYPE_INT8 |
SQL_BINARY |
PG_TYPE_BYTEA |
SQL_BIT |
PG_TYPE_BOOLまたはPG_TYPE_CHAR |
SQL_CHAR |
PG_TYPE_BPCHAR |
SQL_TYPE_DATE |
PG_TYPE_DATE |
SQL_DECIMAL |
PG_TYPE_NUMERIC |
SQL_DOUBLE |
PG_TYPE_FLOAT8 |
SQL_FLOAT |
PG_TYPE_FLOAT8 |
SQL_INTEGER |
PG_TYPE_INT4 |
SQL_LONGVARBINARY |
PG_TYPE_BYTEA |
SQL_LONGVARCHAR |
PG_TYPE_VARCHARまたはPG_TYPE_TEXT |
SQL_NUMERIC |
PG_TYPE_NUMERIC |
SQL_NUMERIC |
PG_TYPE_NUMERIC |
SQL_REAL |
PG_TYPE_FLOAT4 |
SQL_SMALLINT |
PG_TYPE_INT2 |
SQL_TYPE_TIME |
PG_TYPE_TIME |
SQL_TYPE_TIMESTAMP |
PG_TYPE_DATETIME |
SQL_TINYINT |
PG_TYPE_INT2 |
SQL_VARBINARY |
PG_TYPE_BYTEA |
SQL_VARCHAR |
PG_TYPE_VARCHAR |
スレッドセーフティ¶
EDB-ODBCはスレッドセーフです。