アプリケーション開発の手引き

ホスト変数の使用

ホスト変数 とは、組み込み SQL ステートメントが参照する変数です。それによりデータベース・マネージャーとアプリケーション・プログラム間でデータをやり取りします。 SQL ステートメント でホスト変数を使用するときは、名前の接頭部にコロン (:) を付けてください。 ホスト言語ステートメント でホスト変数を使用するときは、コロンは省略してください。

ホスト変数はコンパイル済みホスト言語で宣言され、 BEGIN DECLARE SECTION および END DECLARE SECTION ステートメントで区切られます。プリコンパイラーは、これらのステートメントによって宣言を検出することができます。
注:Java JDBC および SQLJ プログラムは、宣言セクションを使用しません。 Java のホスト変数は、通常の Java 変数宣言構文に従います。

ホスト変数は、ホスト言語のサブセットを用いて宣言されます。ホスト言語にサポートされている構文については、以下を参照してください。

以下の規則は、ホスト変数宣言セクションに当てはまります。

ホスト変数の宣言の詳細については、以下を参照してください。

宣言生成プログラム - db2dclgn

宣言生成プログラムは、データベース内の指定された表の宣言を生成することにより、アプリケーション開発の能率を高めることができます。これによって、アプリケーションに簡単に挿入できる組み込み SQL 宣言のソース・ファイルを作成します。 db2dclgn は、C/C++、Java、COBOL、FORTRAN の各言語をサポートします。

宣言ファイルを生成するには、 db2dclgn コマンドを次の形式で入力してください。

db2dclgn -d database-name -t table-name [options]

たとえば、 SAMPLE データベース内の STAFF 表の宣言を C 言語で出力ファイル staff.h に生成するには、次のコマンドを入力します。

db2dclgn -d sample -t staff -l C

生成される staff.h ファイルには以下が含まれます。

     struct
     {
       short id;
       struct
       {
         short length;
         char data[9];
       } name;
       short dept;
       char job[5];
       short years;
       double salary;
       double comm;
     } staff;

db2dclgn の詳細については、コマンド解説書 を参照してください。

表 4. ホスト変数の宣言
言語 ソース・コード例
C/C++
EXEC SQL BEGIN DECLARE SECTION;
  short     dept=38, age=26;
  double    salary;
  char      CH; 
  char      name1[9], NAME2[9]; 
  /* C comment */ 
  short     nul_ind; 
EXEC SQL END DECLARE SECTION;

Java
// Note that Java host variable declarations follow
// normal Java variable declaration rules, and have
// no equivalent of a DECLARE SECTION
  short     dept=38, age=26; 
  double    salary; 
  char      CH; 
  String    name1[9], NAME2[9]; 
  /* Java comment */ 
  short     nul_ind;

COBOL
 EXEC SQL BEGIN DECLARE SECTION END-EXEC. 
   01 age        PIC S9(4) COMP-5 VALUE 26. 
   01 DEPT       PIC S9(9) COMP-5 VALUE 38. 
   01 salary     PIC S9(6)V9(3) COMP-3. 
   01 CH         PIC X(1). 
   01 name1      PIC X(8). 
   01 NAME2      PIC X(8). 
*  COBOL comment 
   01 nul-ind    PIC S9(4) COMP-5. 
 EXEC SQL END DECLARE SECTION END-EXEC.

FORTRAN
       EXEC SQL BEGIN DECLARE SECTION
         integer*2     age   /26/
         integer*4     dept  /38/
         real*8        salary 
         character     ch 
         character*8   name1,NAME2 
C        FORTRAN comment 
         integer*2     nul_ind 
       EXEC SQL END DECLARE SECTION


表 5. ホスト変数の参照
言語 ソース・コード例
C/C++
EXEC SQL FETCH C1 INTO :cm; 
printf( "Commission = %f\n", cm );

JAVA (SQLJ)
#SQL { FETCH :c1 INTO :cm };
System.out.println("Commission = " + cm);

COBOL
EXEC SQL FETCH C1 INTO :cm END-EXEC 
DISPLAY 'Commission = ' cm

FORTRAN
EXEC SQL FETCH C1 INTO :cm
WRITE(*,*) 'Commission = ', cm


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]