スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

[目次][索引][前へ][次へ]

14.5 ODBC関数のデータ型とHiRDBのデータ型との対応

ODBC関数とサーバ上のHiRDBとのデータ型の対応を次の表に示します。

なお,ODBC関数のデータ型とは,ODBC関数のアーギュメントに指定するSQLデータ型のことです。

表14-3 ODBC関数とHiRDBとのデータ型の対応

分 類 ODBCのデータ型 HiRDBのデータ型 説  明 可否
文字データ SQL_CHAR CHAR(n) 固定長文字列
SQL_VARCHAR VARCHAR(n) 可変長文字列
SQL_LONGVARCHAR VARCHAR(n) 可変長文字列
SQL_CHAR NCHAR(n) 固定長各国文字列
NATIONAL CHARACTER(n)
SQL_VARCHAR NVARCHAR(n) 可変長各国文字列
SQL_CHAR MCHAR(n) 固定長混在文字列
SQL_VARCHAR MVARCHAR(n) 可変長混在文字列
数データ SQL_DECIMAL DEC[IMAL](p,s) 固定小数点数
精度(全体のけた数)=p,
位取り(小数点以下のけた数)=s
1≦p≦15,0≦s≦p
SQL_NUMERIC ×
SQL_SMALLINT SMALLINT 値の範囲が-32768〜32767の整数
SQL_INTEGER INTEGER 値の範囲が-2147483648〜2147483647の整数
SQL_TINYINT -256〜255の整数 ×
SQL_BIGINT 1けたの符号と19けたの整数 ×
SQL_REAL SMALLFLT,REAL 単精度浮動小数点数
SQL_FLOAT FLOAT,
DOUBLE PRECISION
倍精度浮動小数点数
SQL_DOUBLE FLOAT,
DOUBLE PRECISION
倍精度浮動小数点数
SQL_BIT ビット ×
SQL_BINARY 固定長バイナリデータ ×
SQL_LONGVARBINARY BINARY(n) 可変長バイナリデータ
SQL_LONGVARBINARY BLOB 可変長バイナリデータ
日付,時刻データ SQL_TYPE_DATE DATE 日付
SQL_TYPE_TIMESTAMP TIMESTAMP 日付/時刻
SQL_TYPE_TIME TIME 時刻
INTERVAL YEAR TO DAY 日間隔 ×
SQL_INTERVAL_HOUR_TO_SECOND INTERVAL HOUR TO SECOND 時間隔
ユーザ定義型 抽象データ型 抽象データ型 ×

(凡例)
−:ODBCにはないデータ型を示します。
○:使用できます。
×:使用できません。

データ型の最大文字列長,及び値の範囲については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

注※
サーバ上のデータベースのデータ型がそのまま通知されます。
<この節の構成>
(1) ODBC関数で使用できる機能
(2) カーソルを使用した更新,又は削除する場合の設定
(3) ドライバオプションの設定

(1) ODBC関数で使用できる機能

ODBC関数を利用したUAPからサーバ上のHiRDBにアクセスする場合,使用できる機能が一部制限されます。使用できる機能を次の表に示します。

表14-4 使用できる機能

機  能 使用可否
スペシャルカラム情報の取得
インデクス情報の取得
日付,時刻データ型の使用 1
繰返し列の使用 ×3
配列列の使用
表ヘッダ,列ヘッダの取得
非同期処理 ×
LIKEのエスケープ文字の使用
更新行数の取得
LOGINタイムアウト時間設定 ×
日本語データ型の使用 2
定義系SQLの実行

(凡例)
○:使用できます。
×:使用できません。
−:DBMSに機能がありません。

注※1
INTERVAL YEAR TO DAYは使用できません。

注※2
データベースのデータ型がそのまま通知されます。

注※3
繰返し列,?パラメタが繰返し構造でない単純構造の場合,アクセスはできます。
(例) T1の列C1が繰返し列の場合
 
SELECT C1[1],C1[2] FROM T1        … ○
SELECT C1 FROM T1                 … ×
INSERT INTO T1 VALUES(ARRAY[?,?]) … ○
INSERT INTO T1 VALUES(?)          … ×
 
(凡例)
 ○:アクセスできます。
 ×:アクセスできません。
 

(2) カーソルを使用した更新,又は削除する場合の設定

SQLGetCursorNameは,SQLSetCursorNameによってユーザが設定したカーソル名(ユーザカーソル名)を取得します。ユーザが設定しない場合に,システムが設定するカーソルは取得できません。そのため,カーソルを使った更新,又は削除は,ユーザカーソル名を設定する必要があります。

(3) ドライバオプションの設定

SQLSetConnectOption関数,及びSQLGetConnectOption関数で設定する項目に制限があります。項目の設定可否を次の表に示します。

表14-5 SQLSetConnectOption関数,SQLGetConnectOption関数の設定可否

fOption 設定可否
SQL_ACCESS_MODE SQL_MODE_READ_WRITE
SQL_AUTOCOMMIT SQL_AUTOCOMMIT_OFF
又はSQL_AUTOCOMMIT_ON
SQL_LOGIN_TIMEOUT
SQL_TRANSLATE_DLL
SQL_TRANSLATE_OPTION
SQL_TXN_ISOLATION

(凡例)−:設定できません。