Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


付録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).