組込みSQLプログラミングとはRPG, COBOLまたはC言語のソースの中にSQL文を
埋め込む方法である。
ただしSEUでこれらを登録するには
ソース種類 | ソース仕様タイプ | |
---|---|---|
RPG(=RPG III) | SQLRPG | |
ILE-RPG | SQLRPGLE | |
COBOL | SQLCBLLE | |
C | SQLC |
のようにソース仕様タイプを指定する必要がある。
またコンパイラーは CRTBNDRPG, CRTBNDCBL や CRTBNDC ではなく
ソース種類 | コンパイラー |
---|---|
RPG(=RPG III) | CRTSQLRPG |
ILE-RPG | CRTSQLRPGI |
COBOL | CRTSQLCBL |
ILE-COBOL | CRTSQLCBL |
C | CRTSQLC |
を使ってコンパイルしなければならない。
SQLのソースは一時的にQTEMPのソースに展開されてそこからコンパイルされる。
従ってDEBUGのときはQTEMPのソースが参照されていることに注意されたい。
また 各コンパイラーは *PGMだけでなく *MODULE も作成することができるので
SQLでバインド・プログラム(*SRVPGM)を開発することも可能である。
SQL ILE RPG オブジェクト の作成 (CRTSQLRPGI)
選択項目を入力して,実行キーを押してください。
オブジェクト . . . . . . . . . MYRPGPGM 名前
ライブラリー . . . . . . . . OBJLIB 名前 , *CURLIB
ソース・ファイル . . . . . . . QRPGLESRC 名前 , QRPGLESRC
ライブラリー . . . . . . . . MYSRCLIB 名前 , *LIBL, *CURLIB
ソース・メンバー . . . . . . . *OBJ 名前 , *OBJ
ソース・ストリーム・ファイル
コミットメント制御 . . . . . . *NONE *CHG, *ALL, *CS, *NONE...
リレーショナル・データベース *LOCAL
コンパイル・タイプ . . . . . . *PGM *PGM, *SRVPGM, *MODULE
出力リスト . . . . . . . . . . *PRINT *NONE, *PRINT
テキスト ' 記述 ' . . . . . . . *SRCMBRTXT
[解説]
これは SQLRPGのコンパイルの例であるがコンパイル・タイプを*PGM ではなく
*MODULEや *SRVPGMを指定することができる。
出力リストは必ず *PRINTに変更しておかないとQTEMPへのソース生成エラーを
確認することができない。
コンパイルはこの一回だけの指示で内部では
1 QTEMPソースの生成
2.QTEMPソースからのコンパイル
と都合2回行われることになる。
COMIT や ROLLBK を使わないのであれば コミットメント制御 は*NONEと
しておくこと。
( コミットについては別の機会で説明する )