Hitachi

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


8.2.5 埋込みSQL宣言節の不要化

〈この項の構成〉

(1) 概要

プリプロセサでは,/Eオプション(UNIX版の場合は-Eオプション)を指定すると,UAPソースファイル中の任意の箇所で宣言されているSQLのデータ型に対応した変数を,埋込み変数として使用できます。ただし,register記憶クラスの変数は,埋込み変数として使用できません。

変数の有効範囲は,UAPソースファイルを記述しているホスト言語の規則に従います。この機能を使用できるのは,C言語又はCOBOL言語でUAPソースファイルを記述している場合だけです。

この機能を使用すると,次のことができます。

(2) 使用例

使用例を次に示します。

int fetchdata(long  xtanka){
  char    xscode[5];
  char    xsname[17];
  char    xcol[3];
  long    xgryo;
      :
  EXEC SQL
      DECLARE CR3 CURSOR FOR
         SELECT SCODE,SNAME,COL,ZSURYO
         FROM ZAIKO WHERE TANKA=:xtanka;
      :
  EXEC SQL OPEN CR3 ;
      :
  /*  見出し */
  printf("    *****  在庫表 リスト  *****\n\n");
  printf("    商品コード  商品名            色  単価      現在庫量\n");
  printf("    ----        ----------------  --  --------  --------\n");
 
  EXEC SQL WHENEVER SQLERROR GOTO OWARI;
  EXEC SQL WHENEVER NOT FOUND GOTO OWARI;
 
  /* FETCH */
  for(;;){
      EXEC SQL
          FETCH CR3 INTO :xscode,:xsname,:xcol,:xgryo;
          printf("    %4s      %-16s  %2s  %8d  %8d\n",
                  xscode, xsname, xcol, xtanka, xgryo);
    }
  }
OWARI: