Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU - |
目次 索引 |
第3章 アプリケーションの作成 | > 3.2 SQL埋込みCOBOLプログラムの作成方法 |
ホスト変数は、アプリケーションとデータベースの間でデータの受渡しをするのに使用する変数です。SQL文中でホスト変数と対にして指定し、データの内容がNULL値かどうかを表すために使用する変数を、標識変数と呼びます。アプリケーションで参照するデータをデータベースから取り出す場合、標識変数には、取り出したデータがNULL値かどうかを表す情報が設定されます。逆に、アプリケーションで設定したデータをデータベースに格納する場合には、標識変数には、格納するデータがNULL値かどうかを表す情報を設定しておきます。標識変数は、埋込みSQL宣言節で宣言します。宣言の記述方法はホスト変数と同じです。なお、標識変数のデータ型はSMALLINTに対応するデータ型であることが必要です。
各ホスト言語でのデータ型と、SQLのデータ型との対応については、“SQLリファレンス”を参照してください。
ホスト変数および標識変数をSQL文中に指定する場合には、変数の前にコロン“:”を付けて指定します。以下にその指定例を示します(ゴシック部がホスト変数または標識変数です)。ただし、SQL文以外の、COBOLステートメント中では、一般のCOBOLの変数と同じで、コロン“:”は付けません。
標識変数には、SQL文の処理結果が以下のように格納されます。
取り出すデータがNULL値の場合、標識変数には、-1が格納されます。
取り出すデータのデータ型が文字列または各国語文字列で、かつNULL値ではなく、取り出すデータの長さが相手指定の文字列または各国語文字列の長さよりも長い場合は、取り出すデータの有効な長さが標識変数に格納されます。
上記以外の場合は、標識変数に0が格納されます。
なお、標識変数を指定していない場合、取り出すデータがNULL値になると、SQL文の処理はエラーになります。
例1
ホスト変数の指定例STOCKおよびHOUSEをホスト変数、QFLAGをSTOCKの標識変数、そして、WFLAGをHOUSEの標識変数として指定します。SQL文中にホスト変数および標識変数を指定する場合は、コロン“:”を付けます。
EXEC SQL SELECT 在庫数量,倉庫番号 INTO :STOCK INDICATOR :QFLAG, :HOUSE INDICATOR :WFLAG FROM 在庫表 WHERE 製品番号 = 110 END-EXEC.
例2
SQL文以外のCOBOLステートメント上のホスト変数の指定例STOCKをホスト変数、QFLAGをSTOCKの標識変数として使用しています。COBOLステートメントでは、これらの変数にコロン“:”は付けません。
EXEC SQL FETCH CU1 INTO :STOCK INDICATOR :QFLAG END-EXEC. IF QFLAG = -1 GO TO P-NULL. IF STOCK = 0 GO TO P-LOOP.
目次 索引 |