以下の表は、第 7 章 「ストアード・プロシージャー」、第 15 章 「"ユーザー定義関数およびメソッド」、 および第 20 章「C および C++ でのプログラミング"」の補足です。 この表は、ストアード・プロシージャー、UDF、およびメソッドの SQL データ・タイプおよび C データ・タイプ間のサポートされるマッピングをリストしています。
表 22. C/C++ にマップされる SQL データ・タイプ宣言
SQL 列タイプ | C/C++ データ・タイプ | SQL 列タイプの記述 |
---|---|---|
SMALLINT (500 または 501) | sqlint16 | 16 ビット符号付き整数 |
INTEGER(496 または 497) | sqlint32 | 32 ビット符号付き整数 |
BIGINT (492 または 493) | sqlint64 | 64 ビット符号付き整数 |
REAL (480 または 481) | float | 単精度浮動小数点 |
DOUBLE (480 または 481) | double | 倍精度浮動小数点 |
DECIMAL(p ,s ) (484 または 485) | サポートされていません。 |
10 進数を渡すには、パラメーターを
DECIMAL からキャスト可能にデータ・タイプ (たとえば CHAR または DOUBLE)
および明示的に引き数をこのタイプにキャストするように定義します。
|
CHAR(n ) (452 または 453) | char[n+1 ] ここで、
n はデータを保持できる大きさ
1<=n <=254 | 固定長、ヌル終了文字ストリング |
CHAR(n ) FOR BIT DATA (452 または 453) | char[n+1 ] ここで、
n はデータを保持できる大きさ
1<=n <=254 | 固定長文字ストリング |
VARCHAR(n ) (448 または 449) (460 または 461) | char[n+1 ] ここで、
n はデータを保持できる大きさ
1<=n <=32 672 | ヌル終了可変長ストリング |
VARCHAR(n ) FOR BIT DATA (448 または 449) |
struct { sqluint16 長; char[n ] } 1<=n <=32 672 | ヌル終了可変長文字ストリングでない |
LONG VARCHAR (456 または 457) |
struct { sqluint16 長; char[n ] } 32 673<=n <=32 700 | ヌル終了可変長文字ストリングでない |
CLOB(n ) (408 または 409) |
struct { sqluint32 長; char data[n]; } 1<=n <=2 147 483 647 | 4 バイトストリング長標識のヌル終了可変長文字ストリングでない |
BLOB(n ) (404 または 405) |
struct { sqluint32 長; char data[n]; } 1<=n <=2 147 483 647 | 4 バイト・ストリング長標識のヌル終了可変長バイナリー・ストリングでない |
DATE (384 または 385) | char[11] | ヌル終了文字形式 |
TIME (388 または 389) | char[9] | ヌル終了文字形式 |
TIMESTAMP (392 または 393) | char[27] | ヌル終了文字形式 |
| ||
GRAPHIC(n ) (468 または 469) | sqldbchar[n+1 ]
ここで、n はデータを保持できる大きさ
1<=n <=127 | 固定長、ヌル終了 2 バイト文字ストリング |
VARGRAPHIC(n ) (400 または 401) | sqldbchar[n+1 ]
ここで、n はデータを保持できる大きさ
1<=n <=16 336 | ヌル終了、可変長 2 バイト文字ストリングでない |
LONG VARGRAPHIC (472 または 473) |
struct { sqluint16 長; sqldbchar[n ] } 16 337<=n <=16 350 | ヌル終了、可変長 2 バイト文字ストリングでない |
DBCLOB(n ) (412 または 413) |
struct { sqluint32 長; sqldbchar data[n]; } 1<=n <=1 073 741 823 | 4 バイトストリング長標識のヌル終了可変長文字ストリングでない |