付録A.2 SQL連絡領域の展開
SQL連絡領域は,SQLプリプロセサが高級言語のソースプログラム中に展開するため,UAP内に記述する必要はありません。
ここでは,SQLプリプロセサがソースプログラム中に展開したSQL連絡領域の形を示します。
- 〈この項の構成〉
(1) C言語の場合
C言語の場合のSQL連絡領域の展開形を次に示します。
#define SQLCAIDE sqlca.sqlcaide #define SQLCODE sqlca.sqlcode #define SQLERRML sqlca.sqlerrml #define SQLERRMC sqlca.sqlerrmc #define SQLERRMD sqlca.sqlerrmd #define SQLERRD0 sqlca.sqlerrd[0] #define SQLERRD1 sqlca.sqlerrd[1] #define SQLERRD2 sqlca.sqlerrd[2] #define SQLERRD3 sqlca.sqlerrd[3] #define SQLERRD4 sqlca.sqlerrd[4] #define SQLERRD5 sqlca.sqlerrd[5] #define SQLWARN0 sqlca.sqlwarn0 #define SQLWARN1 sqlca.sqlwarn1 #define SQLWARN2 sqlca.sqlwarn2 #define SQLWARN3 sqlca.sqlwarn3 #define SQLWARN4 sqlca.sqlwarn4 #define SQLWARN5 sqlca.sqlwarn5 #define SQLWARN6 sqlca.sqlwarn6 #define SQLWARN7 sqlca.sqlwarn7 #define SQLWARN8 sqlca.sqlwarn8 #define SQLWARN9 sqlca.sqlwarn9 #define SQLWARNA sqlca.sqlwarna #define SQLWARNB sqlca.sqlwarnb #define SQLWARNC sqlca.sqlwarnc #define SQLWARND sqlca.sqlwarnd #define SQLWARNE sqlca.sqlwarne #define SQLWARNF sqlca.sqlwarnf typedef struct sqlca { char sqlcaidc[5]; /* 表ID */ char sqlcaids[2]; /* HiRDBで使用 */ char sqlcaide; /* HiRDBで使用 */ long sqlcabc; /* SQLCAの領域長 */ long sqlcode; /* SQLCODE */ short sqlerrml; /* メッセージの有効長 */ char sqlerrmc[254]; /* メッセージテキスト */ char sqlerrp[8]; /* HiRDBで使用 */ long sqlerrd[6]; /* HiRDB内部状態 */ char sqlwarn0; /* 警告情報有無フラグ */ char sqlwarn1; /* 警告情報1 */ char sqlwarn2; /* 警告情報2 */ char sqlwarn3; /* 警告情報3 */ char sqlwarn4; /* 警告情報4 */ char sqlwarn5; /* 警告情報5 */ char sqlwarn6; /* 警告情報6 */ char sqlwarn7; /* 警告情報7 */ char sqlwarn8; /* 警告情報8 */ char sqlwarn9; /* 警告情報9 */ char sqlwarna; /* 警告情報10 */ char sqlwarnb; /* 警告情報11 */ char sqlwarnc; /* 警告情報12 */ char sqlwarnd; /* 警告情報13(予備) */ char sqlwarne; /* 警告情報14(予備) */ char sqlwarnf; /* 警告情報15(予備) */ char sqlcasys1[16]; /* 予備 */ } SQLCA; extern SQLCA sqlca;
(2) COBOL言語の場合
COBOL言語の場合のSQL連絡領域の展開形を次に示します。
01 SQLCA IS EXTERNAL. 02 SQLCAID PIC X(8). 02 FILLER REDEFINES SQLCAID. 03 SQLCAIDC PIC X(5). 03 SQLCAIDS PIC X(2). 03 SQLCAIDE PIC X(1). 02 SQLCABC PIC S9(9) COMP. 02 SQLCODE PIC S9(9) COMP. 02 SQLERRM. 03 SQLERRML PIC S9(4) COMP. 03 SQLERRMC PIC X(254). 02 SQLERRP PIC X(8). 02 SQLERRD PIC S9(9) COMP OCCURS 6 TIMES. 02 SQLWARN. 03 SQLWARN0 PIC X. 03 SQLWARN1 PIC X. 03 SQLWARN2 PIC X. 03 SQLWARN3 PIC X. 03 SQLWARN4 PIC X. 03 SQLWARN5 PIC X. 03 SQLWARN6 PIC X. 03 SQLWARN7 PIC X. 02 SQLEXT. 03 SQLWARN8 PIC X. 03 SQLWARN9 PIC X. 03 SQLWARNA PIC X. 03 SQLWARNB PIC X. 03 SQLWARNC PIC X. 03 SQLWARND PIC X. 03 SQLWARNE PIC X. 03 SQLWARNF PIC X. 02 SQLCASYS1 PIC X(16).