スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド
文字集合名記述領域は,UAP内で宣言することで確保します。
ここでは,ソースプログラム中に展開する文字集合名記述領域の形,及び使用例を示します。
C言語の場合の文字集合名記述領域の展開形を次に示します。
struct { char sqlcsnid[8]; /* SQLCSNAを示す名称 */ long sqlcsnbc; /* SQLCSNAの長さ */ short sqlcvarn; /* SQLCVAR配列の要素数 */ short sqlcvard; /* SQLCVARの有効数 */ short sqlcsnn; /* SQLCSN配列の要素数 */ short sqlcsnd; /* SQLCSNの有効数 */ char sqlcsnex[12]; /* 予備 */ struct sqlcvar { short sqlcsnx; /* 対応する文字集合名を持つ */ /* SQLCSNの番号 */ } SQLCVAR[m]; ※1 struct sqlcsn { short sqlcsol; /* 認可識別子の有効長 */ char sqlcsoc[30]; /* 認可識別子格納エリア */ short sqlcsnl; /* 文字集合名の有効長 */ char sqlcsnc[30]; /* 文字集合名格納エリア */ } SQLCSN[n]; ※2 } sqlcsna; ※3
注※1 mは,必要な個数(1〜30000)を指定します。
注※2 nは,必要な個数(1)を指定します。
注※3 構造体名称( 'sqlcsna' の部分)は,任意の文字列を指定してください。なお,構造体名称に'SQL'で始まる文字列は指定できません。
COBOL言語の場合の文字集合名記述領域の展開形を次に示します。
01 USQLCSNA.※1 02 USQLCSNID PIC X(8) VALUE 'SQLCSNA'. 02 USQLCSNBC PIC S9(9) COMP. 02 USQLCVARN PIC S9(4) COMP. 02 USQLCVARD PIC S9(4) COMP. 02 USQLCSNN PIC S9(4) COMP. 02 USQLCSND PIC S9(4) COMP. 02 USQLCSNEX PIC X(12). 02 USQLCVAR OCCURS m TIMES. ※2 03 USQLCSNX PIC S9(4) COMP. 02 USQLCSN OCCURS n TIMES. ※3 03 USQLCSOL PIC S9(4) COMP. 03 USQLCSOC PIC X(30). 03 USQLCSNL PIC S9(4) COMP. 03 USQLCSNC PIC X(30).
注※1 集合項目の名称('USQLCSNA'の部分)は,任意の名称を指定してください。なお,データ項目にSQLで始まる文字列は指定できません。
注※2 mは必要な個数(1〜30000)を指定します。
注※3 nは必要な個数(1)を指定します。
文字集合名記述領域の展開方法を次の表に示します。
表E-4 文字集合名記述領域の展開方法
言語 | インクルードファイルを利用する | ユーザが直接記述する |
---|---|---|
C | #include <pdbsqlcsna.h> PDUSRSQLCSNA(m,n) usrsqlcsna m,n,usrsqlcsnaについては,「(3) 文字集合名記述領域操作用マクロ」を参照してください。 |
文字集合名記述領域の展開形を直接コーディングします。 |
COBOL | COPY SQLCSNA [ REPLACING 256 BY m ==OCCURS 1 == BY ==OCCURS n == ]. |
文字集合名記述領域の展開形を直接コーディングします。必ず01レベルから記述してください。 |
C言語では,SQLCSNAの宣言,及び値の設定・参照用に各種のマクロが定義されています。これらのマクロは専用のヘッダファイル(pdbsqlcsna.h)をUAPにインクルードすることで使用できます。文字集合名記述領域操作用マクロを表E-5に,文字集合名指定用マクロを次の表に示します。
表E-5 文字集合名記述領域操作用マクロ
マクロ名 | 機能 |
---|---|
PDUSRSQLCSNA(m,n) | ユーザ用SQLCSNAを宣言します。 |
PDSETCSNASIZE(usrsqlcsna,m,n) | SQLCSNAのサイズを設定します。 |
PDSQLCVARN(usrsqlcsna) | SQLCVAR配列の要素数を設定します。 |
PDSQLCVARD(usrsqlcsna) | SQLCVARの有効数を設定・参照します。 |
PDSQLCSNN(usrsqlcsna) | SQLCSN配列の要素数を設定します。 |
PDSQLCSND(usrsqlcsna) | SQLCSNの有効数を設定・参照します。 |
PDSQLCSNX(usrsqlcsna,o) | 対応する文字集合名を持つSQLCSNの番号を設定・参照します。 |
PDSQLCSOL(usrsqlcsna,p) | 文字集合の認可識別子の長さを設定・参照します。 |
PDSQLCSOC(usrsqlcsna,p) | 文字集合の認可識別子を設定・参照します。 |
PDSQLCSNL(usrsqlcsna,p) | 文字集合の文字集合名の長さを設定・参照します。 |
PDSQLCSNC(usrsqlcsnaa,p) | 文字集合の文字集合名を設定・参照します。 |
表E-6 文字集合名指定用マクロ
マクロ名 | 機能 |
---|---|
PDSQL_CS_MASTER_L | 認可識別子MASTERの長さ |
PDSQL_CS_MASTER_C | 認可識別子MASTERの文字列 |
PDSQL_CS_EBCDIK_L | 文字集合名EBCDIKの長さ |
PDSQL_CS_EBCDIK_C | 文字集合名EBCDIKの文字列 |
PDSQL_CS_UTF16_L | 文字集合名UTF16の長さ |
PDSQL_CS_UTF16_C | 文字集合名UTF16の文字列 |
PDSQL_CS_UTF_16LE_L | 文字集合名UTF-16LEの長さ |
PDSQL_CS_UTF_16LE_C | 文字集合名UTF-16LEの文字列 |
PDSQL_CS_UTF_16BE_L | 文字集合名UTF-16BEの長さ |
PDSQL_CS_UTF_16BE_C | 文字集合名UTF-16BEの文字列 |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.