• 検索結果がありません。

ODBC を介したプログラミング

ドキュメント内 Microsoft Word - FRONT3.DOC (ページ 42-50)

この章では、ODBC Interface とともに ODBC API を使ってプログラミング を行う方法について説明します。次に、この章の内容を示します。

SQLGetInfo の戻り値

表 3-1 は、fInfoType 引数に対する C 言語の #define と、それらが ODBC Interface によって処理されたときに SQLGetInfo から返される値の一覧です。

アプリケーションでは、定数 (表 3-1 の左側の列の値) を fInfoType 引数とし て SQLGetInfo に渡すことによって、この情報を取得することができます。

次の表に示した fInfoType 値のうち、最大値を参照するもの (SQL_MAX_TABLES _IN_SELECT など) の場合、使用可能なシステムリソースによって、実際の値が不 定または可変になるときは戻り値としてゼロが返されます。さまざまな fInfoType 値の説明については、『Microsoft ODBC 2.0 プログラマーズリファレンス&SDK ガイド』 (Microsoft Press) を参照してください。

表 3-1

SQLGetInfo の戻り値

fInfoType 値 (#define) 戻り値

SQL_ACTIVE_CONNECTIONS Scalable SQL Setup と使用可能なメモリ に よって異なる数値。

SQL_ACTIVE_STATEMENTS 特に制限がないため、常に 0。

SQL_DATA_SOURCE_NAME 現在のデータソース名。

SQL_DRIVER_HDBC ドライバマネージャによって処理される。

SQL_DRIVER_HENV ドライバマネージャによって処理される。

SQL_DRIVER_HSTMT ドライバマネージャによって処理される。

SQL_DRIVER_NAME ODBC Interface for Windows を使用している 場 合 は "WINBTINT.DLL"、 ま た ODBC Interface for Windows NT/Windows 95 を使用 している場合は "W32BTINT.DLL"。

SQL_DRIVER_VER 現在のバージョン文字列。

SQL_FETCH_DIRECTION SQL_FD_FETCH_NEXT、

SQL_FD_FETCH_FIRST、

SQL_FD_FETCH_LAST、

SQL_FD_FETCH_PRIOR、

SQL_FD_FETCH_ABSOLUTE、

SQL_FD_FETCH_RELATIVE、

SQL_FD_FETCH_BOOKMARK のいずれか。

SQL_ODBC_API_CONFORMANCE レベル 1 合致を示す SQL_OAC_LEVEL1。

SQL_ODBC_VER ドライバマネージャによって処理される。

SQL_ROW_UPDATES N

注意

fInfoType 値 (#define) 戻り値

SQL_ODBC_SAG_CLI_CONFORMANCE ド ラ イ バ が SAG 対 応 で あ る こ と を 示 す SQL_OSCC_COMPLIANT。

SQL_SERVER_NAME 空文字列

SQL_SEARCH_PATTERN_ESCAPE ¥

SQL_ODBC_SQL_CONFORMANCE コア SQL に対応する SQL_OSC_CORE。

SQL_DATABASE_NAME 空文字列

SQL_DBMS_NAME DBMS 名

SQL_DBMS_VER たとえば、"03.01.0000" のように、接続中の Scalable SQL の、現在のバージョンを表す 文字列。

SQL_ACCESSIBLE_TABLES N SQL_ACCESSIBLE_PROCEDURES N

SQL_PROCEDURES Y

SQL_CONCAT_NULL_BEHAVIOR 実行結果が非 NULL 値のカラムの連結であ ることを示す SQL_CB_NULL。

SQL_CURSOR_COMMIT_BEHAVIOR SQL_CB_PRESERVE SQL_CURSOR_ROLLBACK_BEHAVIOR SQL_CB_PRESERVE SQL_DATA_SOURCE_READ_ONLY N

SQL_DEFAULT_TXN_ISOLATION ODBC Interface for Windows を使用している 場合は、Scalable SQL Setup で指定されてい る ト ラ ン ザ ク シ ョ ン 分 離 レ ベ ル に 基 づ く 値。

ODBC Interface for Windows NT/Windows 95 を 使用している場合は、BTI.INI の [Scalable SQL Engine] "isolation level" セクションで指定されて いるトランザクション分離レベルに基づく値。

そのセクションの設定値が "cs" であると戻り 値は SQL_TXN_REPEATABLE_READ、設定値 が "ex" (exclusive) であると戻り値は SQL_TXN _SERIALIZABLE。

SQL_EXPRESSIONS_IN_ORDERBY N

SQL_IDENTIFIER_CASE SQL_IC_MIXED

SQL_IDENTIFIER_QUOTE_CHAR ダブルクォーテーション文字 (") SQL_MAX_COLUMN_NAME_LEN 20

SQL_MAX_CURSOR_NAME_LEN 18

SQL_MAX_OWNER_NAME_LEN オーナネームがサポートされていないこと

を示す 0。

fInfoType 値 (#define) 戻り値

SQL_MAX_PROCEDURE_NAME_LEN 30

SQL_MAX_QUALIFIER_NAME_LEN 修飾語 (Qualifier) がサポートされていない ことを示す 0。

SQL_MAX_TABLE_NAME_LEN 20 SQL_MULT_RESULT_SETS Y SQL_MULTIPLE_ACTIVE_TXN Y

SQL_OUTER_JOINS Y

SQL_OWNER_TERM 空文字列

SQL_PROCEDURE_TERM "Stored Statements" という文字列 SQL_QUALIFIER_NAME_SEPARATOR "."

SQL_QUALIFIER_TERM 空文字列

SQL_SCROLL_CONCURRENCY SQL_SCCO_OPT_ROWVER、

SQL_SCCO_OPT_VALUES、

SQL_SCCO_READ_ONLY、

SQL_SCCO_LOCK のいずれか。

SQL_SCROLL_OPTIONS SQL_SO_KEYSET_DRIVEN、

SQL_SO_DYNAMIC、

SQL_SO_FORWARD_ONLY のいずれか。

SQL_TABLE_TERM "Table" という文字列

SQL_TXN_CAPABLE ト ラ ン ザ ク シ ョ ン は サ ポ ー ト さ れ て い る が、DML ステートメントに対してのみであ ることを示す SQL_TC_DML。

SQL_USER_NAME 現在のユーザのログイン名、またはユーザ

名が認識できない場合は空文字列。

SQL_CONVERT_FUNCTIONS 0

SQL_NUMERIC_FUNCTIONS SQL_FN_NUM_ROUND、

SQL_FN_NUM_TRUNCATE のいずれか。

SQL_STRING_FUNCTIONS SQL_FN_STR_CONCAT、

SQL_FN_STR_LEFT、

SQL_FN_STR_LTRIM、

SQL_FN_STR_LENGTH、

SQL_FN_STR_LCASE、

SQL_FN_STR_RIGHT、

SQL_FN_STR_RTRIM、

SQL_FN_STR_SUBSTRING、

SQL_FN_STR_UCASE のいずれか。

SQL_SYSTEM_FUNCTIONS 0

fInfoType 値 (#define) 戻り値

SQL_TIMEDATE_FUNCTIONS SQL_FN_TD_CURTIME、

SQL_FN_TD_HOUR、

SQL_FN_TD_MINUTE、

SQL_FN_TD_SECOND、

SQL_FN_TD_DAYOFWEEK、

SQL_FN_TD_CURDATE、

SQL_FN_TD_MONTH、

SQL_FN_TD_DAYOFMONTH、

SQL_FN_TD_YEAR のいずれか。

接続時に Scalable SQL 4 エンジンを使用して いる場合は、SQL_FN_TD_NOW も返される。

SQL_CONVERT_BIGINT 0

SQL_CONVERT_BINARY 0

SQL_CONVERT_BIT 0

SQL_CONVERT_CHAR 0

SQL_CONVERT_DATE 0

SQL_CONVERT_DECIMAL 0

SQL_CONVERT_DOUBLE 0

SQL_CONVERT_FLOAT 0

SQL_CONVERT_INTEGER 0 SQL_CONVERT_LONGVARCHAR 0 SQL_CONVERT_NUMERIC 0

SQL_CONVERT_REAL 0

SQL_CONVERT_SMALLINT 0

SQL_CONVERT_TIME 0

SQL_CONVERT_TIMESTAMP 0 SQL_CONVERT_TINYINT 0 SQL_CONVERT_VARBINARY 0 SQL_CONVERT_VARCHAR 0 SQL_CONVERT_LONGVARBINARY 0

SQL_TXN_ISOLATION_OPTION SQL_TXN_READ_COMMITTED、

SQL_TXN_SERIALIZABLE のいずれか。

SQL_ODBC_SQL_OPT_IEF Y

SQL_CORRELATION_NAME SQL_CN_ANY SQL_NON_NULLABLE_COLUMNS SQL_NNC_NULL

fInfoType 値 (#define) 戻り値

SQL_DRIVER_ODBC_VER SQL_SPEC_STRING

SQL_LOCK_TYPES SQL_LCK_NO_CHANGE、

SQL_LCK_EXCLUSIVE、

SQL_LCK_UNLOCK のいずれか。

SQL_POS_OPERATIONS SQL_POS_POSITION、

SQL_POS_REFRESH、SQL_POS_UPDATE、

SQL_POS_DELETE、SQL_POS_ADD のいず れか。

SQL_POSITIONED_STATEMENTS SQL_PS_POSITIONED_DELETE、

SQL_PS_POSITIONED_UPDATE、

SQL_PS_SELECT_FOR_UPDATE のいずれか。

SQL_GETDATA_EXTENSIONS SQL_GD_ANY_COLUMN、

SQL_GD_ANY_ORDER、SQL_GD_BLOCK のいずれか。

SQL_BOOKMARK_PERSISTENCE SQL_BP_CLOSE、SQL_BP_DROP、

SQL_BP_SCROLL、

SQL_BP_TRANSACTION、

SQL_BP_UPDATE、

SQL_BP_OTHER_HSTMT のいずれか。

SQL_STATIC_SENSITIVITY 0

SQL_FILE_USAGE SQL_FILE_NOT_SUPPORTED SQL_NULL_COLLATION SQL_NC_LOW

SQL_ALTER_TABLE SQL_AT_ADD_COLUMN、

SQL_AT_DROP_COLUMN のいずれか。

SQL_COLUMN_ALIAS N

SQL_GROUP_BY SQL_GB_GROUP_BY_EQUALS_SELECT

SQL_KEYWORDS SQL エンジンのために予約されているキー

ワードの現在の一覧。

SQL_ORDER_BY_COLUMNS_IN_SE LECT

Y

SQL_OWNER_USAGE 0

SQL_QUALIFIER_USAGE 0

SQL_QUOTED_IDENTIFIER_CASE SQL_IC_MIXED SQL_SPECIAL_CHARACTERS #$^

SQL_SUBQUERIES SQL_SQ_CORRELATED_SUBQUERIES SQL_UNION SQL_U_UNION、SQL_U_UNION_ALL の い

ずれか。

fInfoType 値 (#define) 戻り値

SQL_MAX_COLUMNS_IN_GROUP_

BY

最大値が不定であることを意味する 0。

SQL_MAX_COLUMNS_IN_INDEX 最大値が不定であることを意味する 0。

SQL_MAX_COLUMNS_IN_ORDER_

BY

最大値が不定であることを意味する 0。

SQL_MAX_COLUMNS_IN_SELECT 最大値が不定であることを意味する 0。

SQL_MAX_COLUMNS_IN_TABLE 32767 SQL_MAX_INDEX_SIZE 255 SQL_MAX_ROW_SIZE_INCLUDES_

LONG

N

SQL_MAX_ROW_SIZE 4088。実際の戻り値は、リクエスタとサー

バエンジンに設定されている通信バッファ のサイズによって異なります。

SQL_MAX_STATEMENT_LEN 32767

SQL_MAX_TABLES_IN_SELECT Scalable SQL v3.01 に よ る 接 続 で は 20、

Scalable SQL v4.0 による接続では 0。0 と い う 値 は 、 最 大 値 を 特 定 す る こ と が で き ず、実際の値が使用可能なメモリ容量に依 存していることを表します。

SQL_MAX_USER_NAME_LEN 30 SQL_MAX_CHAR_LITERAL_LEN 255 SQL_TIMEDATE_ADD_INTERVALS 0 SQL_TIMEDATE_DIFF_INTERVALS 0 SQL_NEED_LONG_DATA_LEN N SQL_MAX_BINARY_LITERAL_LEN 255 SQL_LIKE_ESCAPE_CLAUSE Y SQL_QUALIFIER_LOCATION 0

SQLDriverConnect 接続文字列

データソースを定義したときに提供された情報やデータベース名を使用し たり、データベースに対する DDF ファイルおよびデータファイルのパス を指定することによって、ODBC Interface を介して Scalable SQL または Btrieve データベースに接続することができます。SQLDriverConnect を呼 出すとき、データソースの名前と、必要に応じて、ユーザのログイン名と パスワード、DDF とデータのパス、またはデータベース名などの追加情報 を含む接続文字列を渡します。

SQLDriverConnect に渡す接続文字列は、等号 (=) で結合されたキーワード と値のペアから構成されます。それぞれのキーワードと値のペアはセミコ ロン (;) で区切ります。ODBC Interface のための接続文字列には、表 3-2 にあげたキーワードを使用します。

表 3-2

SQLDriverConnect 接続文字列のキーワード

キーワード 説明

DSN データソースの名前 (必ず指定する必要があります)。

DB Scalable SQL データベースの名前。

DDFPATH Scalable SQL データベースのための辞書ファイルが保存されて いるディレクトリのパス (そのデータベースが名前付きデータ ベースでない場合)。

DATAPATH Scalable SQL データベースのためのデータファイルが保存され ているディレクトリのパス (データファイルのパスが辞書ファ イルのパスとは異なり、このデータソースが名前付きデータ ベースを使用していない場合)。

UID ユーザのログイン ID。

PWD ユーザ定義のパスワード。

ドキュメント内 Microsoft Word - FRONT3.DOC (ページ 42-50)