SQL-RPGをチョット勉強 その1
IBMDB2i(MySQL Strage Engine)のRedBookにあった、SQL-RPGをせっかくだから、チョット勉強してみました。
i5 O/S V5R4から、フリーフォーマットでも記述出来る様になっていて、以前のバージョンと比べると、だいぶスッキリしたようです。
SQL-RPGをコンパイルしてみると...
SQL-RPGをコンパイルしてみました。ちゃんとSQLの構文エラーをチェック(実装していないフィールドを使ったりするとエラーになったり)してくれるので、結構賢いなぁと思いました。エディタレベルでも結構チェックを入れてくれるので、実行時エラーで悩ませられるケースをだいぶ軽減してくれていると思います。
さて、SQLSTTなどの状況を示す、データ構造をソースに自前で記述しなくても、自動で記述されるとの解説だったので、「きっとコンパイル時に勝手に挿入されているのだろう」と思い、コンパイルリストを見てみました。
確かにステータスを表すデータ構造がリストにはあり、さらにSQLSTTなどの解りづらい、変数は”SQLSTATE”みたいにOverlayされていました。(V5R4からの様です)
コンパイルリストを眺めていると、「Exec SQL」の記述をしたソースが、「CAll xxxx」(xxxxの名前は忘れました)と引数にSQLの構造体をとって呼ばれているではありませんか!結局「Exec SQL〜」以下の内容は、実態が「Call xxxx」のラッパーだったいう事みたいです。でも毎回、外部Callしてたら、Native-RPGに比べて、レスポンス面でハンデにならないのかなぁ?
実際のソースは後日に。