CまたはCOBOLで開発する場合によくある質問と、その回答について説明します。
クライアントパソコン上でCまたはCOBOLの埋込みSQLプログラムを開発する場合に、必要となるソフトウェアは?
参照
必要なソフトウェアについては、“インストールガイド(クライアント編)”の“関連ソフトウェア”を参照してください。
COBOLで利用可能なグループ化項目は、SQL文の出力変数として利用可能か?
COBOLで利用可能なグループ化項目を、SQL文の出力変数として利用できますか。基本的には、FETCH処理で利用します。
またグループ化項目群にOCCURS句やREDEFINEが含まれていても問題ないですか。
グループ化項目例 ・・・(1)グループ化項目定義 01 G1-G 05 ITEM1 PICX(1) 05 ITEM2 PICX(1) 05 ITEM3 PICX(1) 05 ITEM4 PICX(1) 05 ITEM5 PICX(1)
SQL文 ・・・(2)グループ化項目全体を使用 EXEC SQL SELECT KOUMOKU_1, KOUMOKU_2, KOUMOKU_3, KOUMOKU_4, KOUMOKU_5 INTO:G1-G END EXEC
SQL文 ・・・(3)グループ化項目の一部を使用 EXEC SQL SELECT KOUOKU_1, KOUMOKU_2, KOUMOKU_5 INTO:ITEM1, :ITEM2, :ITEM5 END EXEC.
(1)、(2)の使い方で問題ありません。
(3)のようにグループ化項目の一部を代入先に指定する場合は、“グループ化項目名.メンバ名”のように、間をピリオドでつないで指定します。
具体的には以下のように記述します。
SQL文 ・・・(3)グループ化項目の一部を使用 EXEC SQL SELECT KOUOKU_1, KOUMOKU_2, KOUMOKU_5 INTO :G1-G.ITEM1, :G1-G.ITEM2, :G1-G.ITEM5 END EXEC.
また、OCCURS句については問題なく使用できますが、REDEFINEは使用できません。
参照
詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“集団項目ホスト変数の記述方法”を参照してください。
また、関連する質問として下記の“Symfoware Serverでは構造体(集団項目)にデータを格納できるか?”があります。必要に応じて参照してください。
Symfoware Serverでは構造体(集団項目)にデータを格納できるか?
Symfoware Serverで構造体(集団項目)格納はできますか。
たとえば、以下のように“INSERT A B C D”ではなく“INSERT α”として処理を行いたいのですが。
COBOLプログラムの場合には可能です。
COBOLプログラムでは、集団項目ホスト変数を使用できます。
参照
使い方の詳細については、“アプリケーション開発ガイド(埋込みSQL編)”の“集団項目ホスト変数の記述方法”、および“SQLリファレンス”の“INSERT文”、“SQL埋込みCOBOLプログラム”を参照してください。
また、関連する質問として上記の“COBOLで利用可能なグループ化項目は、SQL文の出力変数として利用可能か?”があります。必要に応じて参照してください。