13.5.1 ODBC関数とHiRDBとのデータ型の対応
ODBC関数とサーバ上のHiRDBとのデータ型の対応を次の表に示します。
なお,ODBC関数のデータ型とは,ODBC関数のアーギュメントに指定するSQLデータ型のことです。
分 類 |
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 9 SQLリファレンス」を参照してください。
- 注※
-
サーバ上のデータベースのデータ型がそのまま通知されます。
(1) ODBC関数で使用できる機能
ODBC関数を利用したUAPからサーバ上のHiRDBにアクセスする場合,使用できる機能が一部制限されます。使用できる機能を次の表に示します。
機 能 |
使用可否 |
---|---|
スペシャルカラム情報の取得 |
− |
インデクス情報の取得 |
○ |
日付,時刻データ型の使用 |
○※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関数で設定する項目に制限があります。項目の設定可否を次の表に示します。
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 |
− |
(凡例)−:設定できません。