スケーラブルデータベースサーバ HiRDB Version 8 XDM/RD E2接続機能
SQLのデータ型とC言語のデータ記述の対応は,マニュアル「HiRDB Version 8 UAP開発ガイド」の「SQLのデータ型とC言語のデータ記述」で示す対応に従います。ただし,XDM/RD E2接続機能で固有の対応をする場合があるので注意が必要です。
SQLのデータ型とC言語のデータ記述の対応の,XDM/RD E2接続機能を使用時に固有の追加項目を次の表に示します。
表A-1 SQLのデータ型とC言語のデータ記述(追加項目)
| SQLのデータ型 | C言語のデータ記述 | 項目の記述 | 備考 | |
|---|---|---|---|---|
| LARGE DECIMAL [(p[,s])] |
SQL TYPE IS DECIMAL(p,s) 変数名;※1 |
変数 | 1≦p≦29, 0≦s≦p |
|
| LONG VARCHAR(n) | struct { short 変数名1; char 変数名2[n]; } 構造体名; |
二つの変数から構成される構造体 変数名1:文字列長 変数名2:文字列 |
1≦n≦32,000 | |
| LONG NVARCHAR(n) | struct { short 変数名1; char 変数名2[2n]; } 構造体名; |
二つの変数から構成される構造体 変数名1:文字列長 変数名2:文字列 |
1≦n≦16,000 | |
| LONG MVARCHAR(n) | struct { short 変数名1; char 変数名2[n]; } 構造体名; |
二つの変数から構成される構造体 変数名1:文字列長 変数名2:文字列 |
1≦n≦32,000 | |
| INTERVAL YEAR TO SECOND(q) | SQL TYPE IS DECIMAL(14+q,q) 変数名; |
変数 | q=0,2,4,6 | |
| CLOB | SQL TYPE IS CLOB(n{K | M | G})変数名;※2 | 変数 | 単位省略時: 1≦n≦2,147,483,647 単位がKB: 1≦n≦2,097,152 単位がMB: 1≦n≦2,048 単位がGB: 1≦n≦2 |
|
| CLOB位置付け子 | SQL TYPE IS CLOB AS LOCATOR変数名; ※3 | 変数 | ||
| 標識変数 | CLOB | long 変数名; | 変数 | |
unsigned char 変数名[p/2+1];
| 符号の16進数表現 | 意味 |
|---|---|
| X'C' | 正の符号とみなします。正数には0を含みます。 |
| X'D' | 負の符号とみなします。 |
struct{
long 変数名_reserved; … 1
unsigned long 変数名_length; … 2
char 変数名_data[m]; … 3
}変数名;
unsigned long 変数名;
また,SQLのデータ型とC言語のデータ記述の変更前と変更後を表A-2および表A-3に示します。
表A-2 SQLのデータ型とC言語のデータ記述(変更前)
| SQLのデータ型 | C言語のデータ記述 | 項目の記述 | 備考 |
|---|---|---|---|
| TIME | char 変数名[9]; | 変数 | |
| TIMESTAMP[(q)] | char 変数名[n+1]; | 変数 | q=0の場合:n=19 q=2の場合:n=21,22 q=4の場合:n=23,24 q=6の場合:n=25,26 |
表A-3 SQLのデータ型とC言語のデータ記述(変更後)
| SQLのデータ型 | C言語のデータ記述 | 項目の記述 | 備考 |
|---|---|---|---|
| TIME[(q)] | char 変数名[n+1]; | 変数 | q=0の場合:n=8 q=2の場合:n=11 q=4の場合:n=13 q=6の場合:n=15 |
| TIMESTAMP[(q)] | char 変数名[n+1]; | 変数 | q=0の場合:n=19 q=2の場合:n=22 q=4の場合:n=24 q=6の場合:n=26 |
SQLのデータ型とC言語のデータ記述の対応の,XDM/RD E2接続機能を使用時に固有の追加項目(配列を使用する場合)を次の表に示します。
表A-4 配列を使用する場合のSQLのデータ型とC言語のデータ記述(追加項目)
| SQLのデータ型 | C言語のデータ記述 | 項目の記述 | 備考 |
|---|---|---|---|
| LARGE DECIMAL | − | − | |
| LONG VARCHAR(n) | struct { short 変数名1; char 変数名2[n]; } 構造体名[m]; |
構造体の配列 | 1≦n≦32,000 |
| LONG NVARCHAR(n) | struct { short 変数名1; char 変数名2[2n]; } 構造体名[m]; |
構造体の配列 | 1≦n≦16,000 |
| LONG MVARCHAR(n) | struct { short 変数名1; char 変数名2[n]; } 構造体名[m]; |
構造体の配列 | 1≦n≦32,000 |
| ROW | char 変数名[m][n+1]; | 構造体の配列 | 1≦n≦30,000 |
| INTERVAL YEAR TO SECOND(q) | − | − | |
| CLOB | − | − | |
| CLOB位置付け子 | − | − |
また,SQLのデータ型とC言語のデータ記述の変更前と変更後を表A-5および表A-6に示します。
表A-5 配列を使用する場合のSQLのデータ型とC言語のデータ記述(変更前)
| SQLのデータ型 | C言語のデータ記述 | 項目の記述 | 備考 |
|---|---|---|---|
| TIME | char 変数名[m][9]; | 配列 | |
| TIMESTAMP[(q)] | char 変数名[m][n+1]; | 配列 | q=0の場合:n=19 q=2の場合:n=21,22 p=4の場合:n=23,24 q=6の場合:n=25,26 |
表A-6 配列を使用する場合のSQLのデータ型とC言語のデータ記述(変更後)
| SQLのデータ型 | C言語のデータ記述 | 項目の記述 | 備考 |
|---|---|---|---|
| TIME[(q)] | char 変数名[m][n+1]; | 配列 | q=0の場合:n=8 q=2の場合:n=11 q=4の場合:n=13 q=6の場合:n=15 |
| TIMESTAMP[(q)] | char 変数名[m][n+1]; | 配列 | q=0の場合:n=19 q=2の場合:n=22 q=4の場合:n=24 q=6の場合:n=26 |
SQLのデータ型とC言語のデータ記述の対応の,XDM/RD E2接続機能を使用時に固有の追加項目(繰返し列を使用する場合)を次の表に示します。
表A-7 繰返し列を使用する場合のSQLのデータ型とC言語のデータ記述(追加項目)
| SQLのデータ型 | C言語のデータ記述 | 項目の記述 | 備考 |
|---|---|---|---|
| LARGE DECIMAL [(p[,s])] |
PD_MV_DEC(m,p,s) 変数名; | 要素と配列から構成される構造体 | |
| NVARCHAR(n) | PD_MV_NVCHAR(m,n) 変数名; | 要素と配列から構成される構造体 | 1≦n≦16,000 |
| TIMESTAMP | PD_MV_CHAR(m,19) 変数名; | 要素と配列から構成される構造体 | |
| INTERVAL YEAR TO SECOND(q) | PD_MV_DEC(m,14+q,q) 変数名; | 要素と配列から構成される構造体 | q=0,2,4,6 |
| CLOB | − | − | |
| CLOB位置付け子 | − | − |
また,SQLのデータ型とC言語のデータ記述の変更前と変更後を表A-8および表A-9に示します。
表A-8 繰返し列を使用する場合のSQLのデータ型とC言語のデータ記述(変更前)
| SQLのデータ型 | C言語のデータ記述 | 項目の記述 | 備考 |
|---|---|---|---|
| VARCHAR(n) /MVARCHAR(n) |
PD_MV_VCHAR(m,n) 変数名; | 要素と配列から構成される構造体 | 1≦n≦32,000 |
| NVARCHAR(n) | PD_MV_NVCHAR(m,n) 変数名; | 1≦n≦16,000 | |
| TIME | PD_MV_CHAR(m,8) 変数名; | ||
| TIMESTAMP[(q)] | PD_MV_CHAR(m,n) 変数名; | q=0の場合:n=19 q=2の場合:n=21,22 q=4の場合:n=23,24 q=6の場合:n=25,26 |
表A-9 繰返し列を使用する場合のSQLのデータ型とC言語のデータ記述(変更後)
| SQLのデータ型 | C言語のデータ記述 | 項目の記述 | 備考 |
|---|---|---|---|
| VARCHAR(n) /LONG VARCHAR(n) /MVARCHAR(n) /LONG MVARCHAR(n) |
PD_MV_VCHAR(m,n) 変数名; | 要素と配列から構成される構造体 | 1≦n≦32,000 |
| NVARCHAR(n) /LONG NVARCHAR(n) |
PD_MV_NVCHAR(m,n) 変数名; | 1≦n≦16,000 | |
| TIME[(q)] | PD_MV_CHAR(m,n) 変数名; | q=0の場合:n=8 q=2の場合:n=11 q=4の場合:n=13 q=6の場合:n=15 |
|
| TIMESTAMP[(q)] | PD_MV_CHAR(m,n) 変数名; | q=0の場合:n=19 q=2の場合:n=22 q=4の場合:n=24 q=6の場合:n=26 |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.