ヘッダーをスキップ
Oracle® TimesTen In-Memory Database C開発者ガイド
11gリリース2 (11.2.2)
B66444-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

10 TimesTen ODBC関数およびオプション

この章では、次に示す内容について説明し、TimesTenでサポートされているODBC関数と、文と接続の関数を設定および取得するためにTimesTenでサポートされているオプションを示します。関数の定義の詳細は、ODBC APIのリファレンス・マニュアルを参照してください。

TimesTenでは、ODBC 2.5、拡張レベル1がサポートされており、この章で示すように、拡張レベル2の機能もあります。

サポートされているODBC関数

この項では、TimesTenでサポートされているODBC関数を示し、必要な場合には特に注意事項が記載されています。

表10-1 サポートされているODBC関数

関数 TimesTenでの注意点

SQLAllocConnect


SQLAllocEnv


SQLAllocStmt


SQLBindCol


SQLBindParameter

「SQLBindParameter関数」を参照してください。

SQLCancel

SQLCancelでは、次の操作を取り消すことができます。

  • 別のスレッド上のhstmtで実行中の操作

  • データを必要とするhstmtで実行中の操作

SQLCancelは、次の操作を取り消すことができません

  • グローバル問合せ

    SQLCancelは、ローカル・ノードでのみ取り消すことができます。

  • TimesTen Cacheまたはキャッシュ・グリッドでの管理操作

シグナル・ハンドラからSQLCancelを直接コールしないでください。コードを移植できない可能性があります。

SQLColAttributesSQLColAttributesW

「SQLColAttributes用の列記述子のサポート」を参照してください。

SQLColumnsSQLColumnsW


SQLConnect


SQLDataSourcesSQLDataSourcesW

ドライバ・マネージャを使用しているプログラムでのみ使用できます。

SQLDescribeColSQLDescribeColW


SQLDescribeParam


SQLDisconnect


SQLDriverConnectSQLDriverConnectW


SQLDriversSQLDriversW

ドライバ・マネージャを使用しているプログラムでのみ使用できます。

SQLErrorSQLErrorW

ネイティブ・エラー・コードはTimesTenのエラーです。次のようなエラーが発生する場合があります。「Execution at Oracle failed.Oracle error code nnn.」

SQLExecDirect

SQLExecuteの注意を参照してください。

SQLExecute

TimesTenでは、非同期式の文の実行はサポートしていません。(この章で後述するように、TimesTenではSQL_ASYNC_ENABLE文オプションをサポートしていません。)

SQLFetch


SQLForeignKeysSQLForeignKeysW


SQLFreeConnect


SQLFreeEnv


SQLFreeStmt


SQLGetConnectOptionSQLGetConnectOptionW

「SQLSetConnectOptionおよびSQLGetConnectOptionのオプションのサポート」を参照してください。

SQLGetCursorNameSQLGetCursorNameW

カーソル名の設定または取得はできますが、参照はできません(位置を指定した更新または削除を行うWHERE CURRENT OF句内など)。TimesTenでは、位置を指定した更新または削除文はサポートしていません。

SQLGetData

「Avoid SQLGetData」を参照してください。

SQLGetFunctions


SQLGetInfoSQLGetInfoW

「SQLGetInfo用の情報型のサポート」を参照してください。

SQLGetStmtOption

「SQLSetStmtOptionおよびSQLGetStmtOptionのオプションのサポート」を参照してください。

SQLGetTypeInfoSQLGetTypeInfoW


SQLNativeSqlSQLNativeSqlW


SQLNumParams


SQLNumResultCols


SQLParamData


SQLParamOptions


SQLPrepare


SQLPrimaryKeysSQLPrimaryKeysW


SQLProcedureColumnsSQLProcedureColumnsW


SQLProceduresSQLProceduresW


SQLPutData


SQLRowCount

標準の機能以外に、この関数には、キャッシュ・グループでの特別な使用方法があります。「キャッシュ・グループの管理」を参照してください。

SQLSetConnectOptionSQLSetConnectOptionW

次の項にある「SQLSetConnectOptionおよびSQLGetConnectOption用のオプションのサポート」を参照してください。

SQLSetCursorNameSQLSetCursorNameW

カーソル名の設定または取得はできますが、参照はできません(位置を指定した更新または削除を行うWHERE CURRENT OF句内など)。

SQLSetStmtOption

「SQLSetStmtOptionおよびSQLGetStmtOptionのオプションのサポート」を参照してください。

SQLSetParam

これは、ODBC 2.0ではSQLBindParameterに置き換えられたODBC 1.0関数です。下位互換性の目的で保持されています。

SQLSpecialColumnsSQLSpecialColumnsW


SQLStatisticsSQLStatisticsW


SQLTablesSQLTablesW


SQLTransact




注意:

TimesTenでは、各国語キャラクタ・セットとして、UTF-16のみがサポートされています。

ODBCの接続関数および文関数のオプションのサポート

この項では、ODBC関数SQLSetConnectOptionSQLGetConnectOptionSQLSetStmtOptionおよびSQLGetStmtOptionのTimesTenオプションのサポートについて説明します。

これらの関数の一般的な情報は、ODBC APIのリファレンス・マニュアルを参照してください。

SQLSetConnectOptionおよびSQLGetConnectOptionのオプションのサポート

表10-2および表10-3に、ODBCのSQLSetConnectOption関数およびSQLGetConnectOption関数の標準オプションおよびTimesTen固有のオプションに対するTimesTenでのサポート状況を示します。これらの関数を使用すると、初期接続後の接続オプションを設定したり、それらの設定を取得できます。オプションの中には、表に示すように、接続プロセス中に設定できる接続属性と対応するものもあります。

「SQLSetStmtOptionおよびSQLGetStmtOptionのオプションのサポート」も参照してください。これらのオプションは、SQLSetConnectOptionを使用して設定することもできますが、その場合、設定した値は接続時のすべての文に対するデフォルトになります。


注意:

  • SQLSetConnectOptionまたはSQLSetStmtOptionを使用したオプション設定は、対応する接続属性の設定よりも優先されます(該当する場合)。

  • ここに記載されている説明は、SQLSetConnectOptionWおよびSQLGetConnectOptionWにも適用されます。


表10-2 標準オプション: SQLSetConnectOption、SQLGetConnectOption

オプション サポート

SQL_ACCESS_MODE

なし

SQL_AUTOCOMMIT

あり

SQL_CURRENT_QUALIFIER

なし

SQL_LOGIN_TIMEOUT

なし

SQL_MAX_ROWS

あり

SQL_NOSCAN

あり

SQL_ODBC_CURSORS

ドライバ・マネージャを使用しているプログラムでは、あり

SQL_OPT_TRACE

ドライバ・マネージャを使用しているプログラムでは、あり

SQL_OPT_TRACEFILE

ドライバ・マネージャを使用しているプログラムでは、あり

SQL_PACKET_SIZE

なし

SQL_QUIET_MODE

なし

SQL_TRANSLATE_DLL

なし

SQL_TRANSLATE_OPTION

なし

SQL_TXN_ISOLATION

vParamSQL_TXN_READ_COMMITTEDまたはSQL_TXN_SERIALIZABLEの場合は、あり

「複数のデータ行のプリフェッチ」を参照してください。『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』の分離およびロックによる並行性制御に関する説明も参照してください。『Oracle TimesTen In-Memory Databaseリファレンス』の分離に関する説明に記載されている、Isolation一般接続属性と同じ機能です。


表10-3 TimesTenオプション: SQLSetConnectOption、SQLGetConnectOption

オプション コメント

TT_CLIENT_TIMEOUT

これはクライアント/サーバーの場合のみで、『Oracle TimesTen In-Memory Databaseリファレンス』のTTC_Timeoutに関する説明に記載されている、TTC_Timeout TimesTenクライアント接続属性と同じ機能です。

TT_DYNAMIC_LOAD_ENABLE

『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』の動的ロードの構成に関する説明を参照してください。これには、『Oracle TimesTen In-Memory Databaseリファレンス』のDynamicLoadEnableに関する説明に記載されている、DynamicLoadEnable TimesTen Cache一般接続属性と同じ機能があります。

TT_DYNAMIC_LOAD_ERROR_MODE

『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』の動的ロード・エラーの表示に関する説明を参照してください。これには、『Oracle TimesTen In-Memory Databaseリファレンス』のDynamicLoadErrorModeに関する説明に記載されている、DynamicLoadErrorMode TimesTen Cache接続属性と同じ機能があります。

TT_NLS_LENGTH_SEMANTICS

「グローバリゼーション・オプションの設定」を参照してください。これには、『Oracle TimesTen In-Memory Databaseリファレンス』のNLS_LENGTH_SEMANTICSに関する説明に記載されている、NLS_LENGTH_SEMANTICS一般接続属性と同じ機能があります。「その他のグローバリゼーション機能」にも、この機能に関する関連情報があります。

TT_NLS_NCHAR_CONV_EXCP

「グローバリゼーション・オプションの設定」を参照してください。これには、『Oracle TimesTen In-Memory Databaseリファレンス』のNLS_NCHAR_CONV_EXCPに関する説明に記載されている、NLS_NCHAR_CONV_EXCP一般接続属性と同じ機能があります。「その他のグローバリゼーション機能」にも、この機能に関する関連情報があります。

TT_NLS_SORT

「グローバリゼーション・オプションの設定」を参照してください。これには、『Oracle TimesTen In-Memory Databaseリファレンス』のNLS_SORTに関する説明に記載されている、NLS_SORT一般接続属性と同じ機能があります。「その他のグローバリゼーション機能」にも、この機能に関する関連情報があります。

TT_PREFETCH_CLOSE

『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のシリアライズ可能なトランザクションに対するTT_PREFETCH_CLOSEの有効化に関する説明を参照してください。

TT_REGISTER_FAILOVER_CALLBACK

「アプリケーションでの自動クライアント・フェイルオーバーの使用」を参照してください。

TT_REPLICATION_TRACK

「レプリケーションで使用する機能」を参照してください。パラレル・レプリケーションを使用し、レプリケーション・トラックを指定するODBCアプリケーションの場合、これは接続のトラック番号を指定するReplicationTrack一般接続属性と同じ機能があります。


SQLSetStmtOptionおよびSQLGetStmtOptionのオプションのサポート

表10-4表10-5は、ODBCのSQLSetStmtOptionおよびSQLGetStmtOption関数の標準オプションおよびTimesTen固有のオプションに対するTimesTenでのサポート状況を示しています。これらの関数を使用すると、文オプションの設定またはそれらの設定の取得ができます。

接続に関連付けられているすべての文のオプションのデフォルト値を設定するには、SQLSetConnectOptionを使用します。


注意:

SQLSetConnectOptionまたはSQLSetStmtOptionを使用したオプション設定は、対応する接続属性の設定よりも優先されます(該当する場合)。

表10-4 標準オプション: SQLSetStmtOption、SQLGetStmtOption

オプション サポート

SQL_ASYNC_ENABLE

なし

SQL_BIND_TYPE

なし

SQL_CONCURRENCY

なし

SQL_CURSOR_TYPE

なし

SQL_KEYSET_SIZE

なし

SQL_MAX_LENGTH

なし

SQL_MAX_LENGTHは設定できますが、指定した値はすべて0で上書きされます(すべての使用可能なデータが返されます)。

SQL_MAX_ROWS

あり

SQL_NOSCAN

あり

SQL_QUERY_TIMEOUT

あり

「SQL文の実行に対するタイムアウトまたはしきい値の設定」を参照してください。

SQL_RETRIEVE_DATA

なし

SQL_ROWSET_SIZE

なし

SQL_SIMULATE_CURSOR

なし

SQL_USE_BOOKMARKS

なし


表10-5 TimesTenオプション: SQLSetStmtOption、SQLGetStmtOption

オプション コメント

TT_PREFETCH_COUNT

「複数のデータ行のプリフェッチ」を参照してください。

TT_QUERY_THRESHOLD

「SQL文のしきい値期間の設定」を参照してください。これは、SQL文の時間のしきい値(秒単位)を指定するためのオプションで、経過後にTimesTenによってサポート・ログに警告が書き込まれ、SNMPトラップがスローされます。

TT_PRIVATE_COMMANDS

コマンドはその他の接続と共有されません。『Oracle TimesTen In-Memory Databaseリファレンス』のPrivateCommandsに関する項を参照してください。

TT_STMT_PASSTHROUGH_TYPE

特定の準備済の文がTimesTen Cacheのパススルー機能によってOracle Databaseにパススルーされるかどうかを決定します。SQLGetStmtOptionによって返される値は、TT_STMT_PASSTHROUGH_NONEまたはTT_STMT_PASSTHROUGH_ORACLEのいずれかです。

注意: TimesTenでは、このオプションはSQLGetStmtOptionでのみサポートされています。

「パススルー・ステータスの確認」を参照してください。『Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイド』のパススルー・レベルの設定に関する説明も参照してください。


SQLGetInfo用の情報型のサポート

この項では、ODBC関数SQLGetInfo用にTimesTenでサポートされている標準およびTimesTen固有の情報型について説明します。

この関数および標準的な情報型の全般情報は、ODBC APIリファレンス・ドキュメントを参照してください。

TimesTenでは、次の標準的なODBC 2.x情報型(アルファベット順)をサポートしています。

 SQL_ACCESSIBLE_PROCEDURES, SQL_ACCESSIBLE_TABLES, SQL_ACTIVE_CONNECTIONS,
 SQL_ACTIVE_STATEMENTS, SQL_ALTER_TABLE, SQL_BOOKMARK_PERSISTENCE,
 SQL_COLUMN_ALIAS, SQL_CONCAT_NULL_BEHAVIOR, SQL_CONVERT_BIGINT,
 SQL_CONVERT_BINARY, SQL_CONVERT_BIT, SQL_CONVERT_CHAR, SQL_CONVERT_DATE,
 SQL_CONVERT_DECIMAL, SQL_CONVERT_DOUBLE, SQL_CONVERT_FLOAT,
 SQL_CONVERT_FUNCTIONS, SQL_CONVERT_INTEGER, SQL_CONVERT_LONGVARBINARY,
 SQL_CONVERT_LONGVARCHAR, SQL_CONVERT_NUMERIC, SQL_CONVERT_REAL,
 SQL_CONVERT_SMALLINT, SQL_CONVERT_TIME, SQL_CONVERT_TIMESTAMP,
 SQL_CONVERT_TINYINT, SQL_CONVERT_VARBINARY, SQL_CONVERT_VARCHAR,
 SQL_CONVERT_WVARCHAR, SQL_CORRELATION_NAME, SQL_CURSOR_COMMIT_BEHAVIOR,
 SQL_CURSOR_ROLLBACK_BEHAVIOR, SQL_DATA_SOURCE_NAME, SQL_DATA_SOURCE_READ_ONLY,
 SQL_DATABASE_NAME, SQL_DBMS_NAME, SQL_DBMS_VER, SQL_DEFAULT_TXN_ISOLATION,
 SQL_DRIVER_HDBC, SQL_DRIVER_HENV, SQL_DRIVER_HLIB, SQL_DRIVER_HSTMT,
 SQL_DRIVER_NAME, SQL_DRIVER_ODBC_VER, SQL_DRIVER_VER, SQL_EXPRESSIONS_IN_ORDERBY,
 SQL_FETCH_DIRECTION, SQL_FILE_USAGE, SQL_GETDATA_EXTENSIONS, SQL_GROUP_BY,
 SQL_IDENTIFIER_CASE, SQL_IDENTIFIER_QUOTE_CHAR, SQL_KEYWORDS,
 SQL_LIKE_ESCAPE_CLAUSE, SQL_LOCK_TYPES, SQL_MAX_BINARY_LITERAL_LEN,
 SQL_MAX_CHAR_LITERAL_LEN, SQL_MAX_COLUMN_NAME_LEN, SQL_MAX_COLUMNS_IN_GROUP_BY,
 SQL_MAX_COLUMNS_IN_INDEX, SQL_MAX_COLUMNS_IN_ORDER_BY, SQL_MAX_COLUMNS_IN_SELECT,
 SQL_MAX_COLUMNS_IN_TABLE, SQL_MAX_CURSOR_NAME_LEN, SQL_MAX_INDEX_SIZE,
 SQL_MAX_OWNER_NAME_LEN, SQL_MAX_PROCEDURE_NAME_LEN, SQL_MAX_QUALIFIER_NAME_LEN,
 SQL_MAX_ROW_SIZE, SQL_MAX_ROW_SIZE_INCLUDES_LONG, SQL_MAX_STATEMENT_LEN,
 SQL_MAX_TABLE_NAME_LEN, SQL_MAX_TABLES_IN_SELECT, SQL_MAX_USER_NAME_LEN,
 SQL_MULT_RESULT_SETS, SQL_MULTIPLE_ACTIVE_TXN, SQL_NEED_LONG_DATA_LEN,
 SQL_NON_NULLABLE_COLUMNS, SQL_NULL_COLLATION, SQL_NUMERIC_FUNCTIONS,
 SQL_ODBC_API_CONFORMANCE, SQL_ODBC_SAG_CLI_CONFORMANCE, SQL_ODBC_SQL_CONFORMANCE,
 SQL_ODBC_SQL_OPT_IEF, SQL_ODBC_VER, SQL_OJ_CAPABILITIES,
 SQL_ORDER_BY_COLUMNS_IN_SELECT, SQL_OUTER_JOINS, SQL_OWNER_TERM, SQL_OWNER_USAGE,
 SQL_POS_OPERATIONS, SQL_POSITIONED_STATEMENTS, SQL_PROCEDURE_TERM,
 SQL_PROCEDURES, SQL_QUALIFIER_LOCATION, SQL_QUALIFIER_NAME_SEPARATOR,
 SQL_QUALIFIER_TERM, SQL_QUALIFIER_USAGE, SQL_QUOTED_IDENTIFIER_CASE,
 SQL_ROW_UPDATES, SQL_SCROLL_CONCURRENCY, SQL_SCROLL_OPTIONS,
 SQL_SEARCH_PATTERN_ESCAPE, SQL_SERVER_NAME, SQL_SPECIAL_CHARACTERS,
 SQL_STATIC_SENSITIVITY, SQL_STRING_FUNCTIONS, SQL_SUBQUERIES,
 SQL_SYSTEM_FUNCTIONS, SQL_TABLE_TERM, SQL_TIMEDATE_ADD_INTERVALS,
 SQL_TIMEDATE_DIFF_INTERVALS, SQL_TIMEDATE_FUNCTIONS, SQL_TXN_CAPABLE,
 SQL_TXN_ISOLATION_OPTION, SQL_UNION, SQL_USER_NAME

注意:

SQL_DRIVER_HLIBは、ドライバ・マネージャでのみサポートされています。

TimesTenでは、次の標準的なODBC 3.x情報型をサポートしています。

 SQL_AGGREGATE_FUNCTIONS, SQL_CONVERT_WCHAR, SQL_CONVERT_WLONGVARCHAR,
 SQL_CREATE_VIEW, SQL_DATETIME_LITERALS, SQL_DROP_VIEW,
 SQL_SQL92_RELATIONAL_JOIN_OPERATORS, SQL_SQL92_VALUE_EXPRESSIONS

表10-6に、TimesTen固有の情報型を示します。

表10-6 TimesTen情報項目: SQLGetInfo

情報型 データ型 説明

TT_DATA_STORE_INVALID

SQLINTEGER

システム障害やアプリケーション障害などが原因でデータベースが無効な状態にある場合は1を返します。そうでない場合は、0を返します。

注意: エラー846やエラー994などの致命的なエラーは、TimesTenデータベースを無効にし、この項目を1に設定します。

TT_DATABASE_CHARACTER_SET

SQLCHAR

データベースのキャラクタ・セットの名前を返します。

TT_DATABASE_CHARACTER_SET_SIZE

SQLINTEGER

データベースのキャラクタ・セットのキャラクタの最大サイズをバイト単位で返します。

TT_DATABASE_TYPE_MODE

SQLINTEGER

Oracle型モード(標準かつデフォルトの設定)の場合は0を、TimesTen型モード(従来の設定)の場合は1を返します。

注意: 型モードは、TypeMode接続属性を使用して指定できます。

TT_PLATFORM_INFO

ビット・マスク

プラットフォーム情報を示すビット・マスクを返します。ビット0は、64ビット・プラットフォームの場合は値1を、32ビット・プラットフォームの場合は値0を持ちます。ビット1は、ビッグエンディアンの場合は値1を、リトルエンディアンの場合は値0を持ちます。

TT_REPLICATION_INVALID

SQLINTEGER

レプリケーションが失敗した状態の場合は1を、そうでない場合は0を返します。

注意: サブスクライバまたはスタンバイ・データベースでTT_REPLICATION_INVALID=1が設定されている場合、サブスクライバまたはスタンバイが更新を受信していないとレプリケーション・エージェントは停止します。双方向の構成では、レプリケーション・エージェントが稼働していないため、FAILTHRESHOLDは受け付けられません。この状況を解決するには、サブスクライバまたはスタンバイ・データベースを破棄し、ttRepAdmin -duplicateオプションを使用して新しく作成します。詳細は、『Oracle TimesTen In-Memory Database開発者および管理者ガイド』のサブスクライバ機能に関する説明を参照してください。


SQLColAttributes用の列記述子のサポート

この項では、ODBC関数SQLColAttributes用にサポートされているTimesTen固有の列記述子情報について説明します。

この関数および標準的な情報型の全般情報は、ODBC APIリファレンス・ドキュメントを参照してください。

表10-7に、TimesTen固有の列記述子を示します。

表10-7 TimesTen列記述子: SQLColAttributes

記述子 コメント/説明

TT_COLUMN_INLINE

インライン・データを備えた列の場合はTRUEを、そうでない場合はFALSEを返します。これは、SQLColAttributes pfDescパラメータで返されます。

TT_COLUMN_LENGTH_SEMANTICS

キャラクタ型列において、バイト長セマンティクスを備えた列の場合は"BYTE"を、キャラクタ長セマンティクスを備えた列の場合は"CHAR"を返します。キャラクタ以外の列の場合は、""を返します。この情報は、SQLColAttributes rgbDescパラメータで返されます。

この情報は、データ長がバイト単位またはキャラクタ単位のいずれで測定されるかを示しています。TimesTenにおける長さセマンティクスは、Oracle Databaseの場合と同じです。詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』の長さセマンティクスに関する説明を参照してください。