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によって返される情報を示します。

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:

値タイプ

意味

Character string

文字列の長さ

Binary buffer

SQL_LEN_BINARY_ATTR(length)の結果

Fixed length data type

SQL_IS_INTEGERまたはSQL_IS_UINTEGER

Any other type

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

NO

SQL_MODE_READ_WRITE

SQL_ATTR_ASYNC_ENABLE

NO

SQL_ASYNC_ENABLE_OFF

SQL_ATTR_AUTO_IPD

NO

SQL_A_AUTOCOMMIT

SQL_AUTOCOMMIT、SQL_AUTOCOMMIT_ON、SQL_AUTOCOMMIT_OFF

SQL_ATTR_CONNECTION_TIMEOUT

NO

SQL_ATTR_CURRENT_CATALOG

NO

SQL_ATTR_DISCONNECT_BEHAVIOR

NO

SQL_ATTR_ENLIST_IN_DTC

YES

win32および条件付きコンパイルの場合

SQL_ATTR_ENLIST_IN_XA

NO

SQL_ATTR_LOGIN_TIMEOUT

NO

SQL_LOGIN_TIMEOUT

SQL_ATTR_ODBC_CURSORS

NO

SQL_ATTR_PACKET_SIZE

NO

SQL_ATTR_QUIET_MODE

NO

SQL_ATTR_TRACE

NO

SQL_ATTR_TRACEFILE

NO

SQL_ATTR_TRANSLATE_LIB

NO

SQL_ATTR_TRANSLATE_OPTION

NO

SQL_ATTR_TXN_ISOLATION

YES

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:

値のタイプ

意味

Character string

文字ストリングまたはSQL_NTSの長さ

Binary buffer

SQL_LEN_BINARY_ATTR(length)の結果

Fixed length data type

SQL_IS_INTEGERまたはSQL_IS_UINTEGER

Any other type

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:

値のタイプ

意味

Character string

文字列の長さ

Binary buffer

SQL_LEN_BINARY_ATTR(length)の結果

Fixed length data type

SQL_IS_INTEGERまたはSQL_IS_UINTEGER

Any other type

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

YES

SQL_ATTR_APP_ROW_DESC

YES

SQL_ATTR_ASYNC_ENABLE

NO

SQL_ATTR_CONCURRENCY

YES

SQL_CONCUR_READ_ONLY

SQL_ATTR_CURSOR_SCROLLABLE

YES

SQL_ATTR_CURSOR_TYPE

YES

SQL_CURSOR_FORWARD_ONLY

SQL_ATTR_CURSOR_SENSITIVITY

YES

SQL_INSENSITIVE

SQL_ATTR_ENABLE_AUTO_IPD

NO

SQL_ATTR_FETCH_BOOKMARK_PTR

YES

SQL_ATTR_IMP_PARAM_DESC

YES

SQL_ATTR_IMP_ROW_DESC

YES

SQL_ATTR_KEYSET_SIZE

NO

SQL_ATTR_MAX_LENGTH

NO

SQL_ATTR_MAX_ROWS

NO

SQL_ATTR_METADATA_ID

YES

SQL_ATTR_NOSCAN

NO

SQL_ATTR_PARAM_BIND_OFFSET_PTR

YES

ODBCV2.0

SQL_ATTR_PARAM_BIND_TYPE

YES

SQL_ATTR_PARAM_OPERATION_PTR

YES

SQL_ATTR_PARAM_STATUS_PTR

YES

SQL_ATTR_PARAMS_PROCESSED_PTR

YES

SQL_ATTR_PARAMSET_SIZE

YES

SQL_ATTR_QUERY_TIMEOUT

NO

SQL_ATTR_RETRIEVE_DATA

NO

SQL_ATTR_ROW_BIND_OFFSET_PTR

YES

SQL_ATTR_ROW_BIND_TYPE

NO

SQL_ATTR_ROW_NUMBER

YES

SQL_ATTR_ROW_OPERATION_PTR

YES

SQL_ATTR_ROW_STATUS_PTR

YES

SQL_ATTR_ROWS_FETCHED_PTR

YES

SQL_ATTR_ROW_ARRAY_SIZE

YES

SQL_ATTR_SIMULATE_CURSOR

NO

SQL_ATTR_USE_BOOKMARKS

YES

SQL_ROWSET_SIZE

YES

。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()

Yes

SQLAllocEnv()

Yes

SQLAllocStmt()

Yes

SQLBindCol()

Yes

SQLCancel()

Yes

SQLColAttributes()

Yes

SQLConnect()

Yes

SQLDescribeCol()

Yes

SQLDisconnect()

Yes

SQLError()

Yes

SQLExecDirect()

Yes

SQLExecute()

Yes

SQLFetch()

Yes

SQLFreeConnect()

Yes

SQLFreeEnv()

Yes

SQLFreeStmt()

Yes

SQLGetCursorName()

Yes

SQLNumResultCols()

Yes

SQLPrepare()

Yes

SQLRowCount()

Yes

SQLSetCursorName()

Yes

SQLSetParam()

Yes

SQLTransact()

Yes

SQLColumns()

Yes

SQLDriverConnect()

Yes

SQLGetConnectOption()

Yes

SQLGetData()

Yes

SQLGetFunctions()

Yes

SQLGetInfo()

Yes

SQLGetStmtOption()

Yes

SQLGetTypeInfo()

Yes

SQLParamData()

Yes

SQLPutData()

Yes

SQLSetConnectOption()

Yes

SQLSetStmtOption()

Yes

SQLSpecialColumns()

Yes

SQLStatistics()

Yes

SQLTables()

Yes

SQLBrowseConnect()

No

SQLColumnPrivileges()

No

SQLDataSources()

Yes

SQLDescribeParam()

No

SQLExtendedFetch()

Yes

SQLForeignKeys()

Yes

SQLMoreResults()

Yes

SQLNativeSQL()

Yes

SQLNumParams()

Yes

SQLParamOptions()

Yes

SQLPrimaryKeys()

Yes

SQLProcedureColumns()

Yes

SQLProcedures()

Yes

SQLSetPos()

Yes

SQLSetScrollOptions()

No

SQLTablePrivileges()

Yes

SQLDrivers()

Yes

SQLBindParameter()

Yes

SQLAllocHandle()

Yes

SQLBindParam()

Yes

SQLCloseCursor()

Yes

SQLColAttribute()

Yes

SQLCopyDesc()

Yes

SQLendTran()

Yes

SQLFetchScroll()

Yes

SQLFreeHandle()

Yes

SQLGetConnectAttr()

Yes

SQLGetDescField()

Yes

SQLGetDescRec()

Yes

SQLGetDiagField()

Yes

SQLGetDiagRec()

Yes

SQLGetEnvAttr()

Yes

SQLGetStmtAttr()

Yes

SQLSetConnectAttr()

Yes

SQLSetDescField()

Yes

SQLSetDescRec()

No

SQLSetEnvAttr()

Yes

SQLSetStmtAttr()

Yes

SQLBulkOperations()

Yes

サポートされているデータ型

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はスレッドセーフです。