Symfoware Server SQLビギナーズガイド - FUJITSU -
目次 索引 前ページ次ページ

第7章 アプリケーションの実行時に動的SQL文を実行する方法> 7.3 SQL文の条件を動的に変更して実行する

7.3.1 SQLDA構造体の操作方法

SQL文の条件だけを動的に変更してデータ操作を行う場合は、動的パラメタ指定を指定します。入力する値をホスト変数に格納します。ホスト変数の値を設定するためには、動的パラメタ指定の情報をそのホスト変数の属性と一致させることが必要です。そこで、データベースからSQLDA構造体に動的パラメタ指定の情報を取り込んで、属性を変更し、値を設定します。SQLDA構造体の位置づけを以下に示します。

SQLDA構造体は、動的パラメタ指定に関する情報を持ちます。

SQLDA構造体は、項目記述子域“SQLVAR”およびSQLVARの最大要素数“SQLN”と有効要素数“SQLD”で構成されています。

項目記述子域SQLVARは、動的パラメタ指定の情報を格納する配列で構成されています。SQLDは、SQLDA構造体の動的パラメタ指定の数を示し、そのデータ型は2進の精度を持つ真数です。

SQLDA構造体の詳細については、“SQL文の準備とSQLDA構造体の操作”を参照してください。

■動的パラメタ指定値の設定手順

USING記述子を使用して、動的パラメタ指定の値を設定する方法の順序を以下に示します。

[図:被準備文の動的パラメタ指定値の設定手順]

■SQLDA構造体を操作するSQL

図:被準備文の動的パラメタ指定値の設定手順”で示したように、データベースからSQLDA構造体に動的パラメタ指定の情報を取り込んだり、SQLDA構造体に取り込まれた動的パラメタ指定の情報を取得するには、それぞれSQL文を使用します。SQLDA構造体を操作するSQL文とその機能について以下で説明します。

◆DESCRIBE

DESCRIBE文では、PREPARE文で準備された被準備文の動的パラメタ指定の情報をSQLDA構造体に取り込みます。このSQL文を“入力DESCRIBE”といいます。

SQL文識別子STM1に対応する被準備文の動的パラメタ指定の情報を、SQLDA構造体に取り込む入力DESCRIBE文の例を以下に示します。

DESCRIBE  INPUT  STM1  USING  SQL  DESCRIPTOR  :INSQLDA 
                    (1)                                 (2)

(1) SQL文識別子

(2) SQLDA構造体

SQL文識別子STM1に対する被準備文が以下の場合、SQLDA構造体変数の内容は次のようになります。

INSERT INTO 在庫管理.在庫表(製品番号, 製品名, 在庫数量) VALUES(?, ?, ?)
                                                              (1)

(1) 動的パラメタ指定

なお、ここでは、動的パラメタ指定の情報を持つSQLDA構造体を操作するSQL文のみを説明しています。これ以外のSQL文については、“SQL文の準備とSQLDA構造体の操作”を参照してください。


下へ7.3.1.1 動的SELECT文を準備して実行する(SQLDA構造体の場合)
下へ7.3.1.2 動的単一行SELECT文を準備して実行する(SQLDA構造体の場合)

目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2007