Web教材一覧データベース

SQLの動作環境(動的SQLと静的SQL)


静的SQL

静的SQLとは、ホスト言語(COBOLなどのプログラミング言語)でのソースプログラム内にSQL命令を組み込んだ形式です。それで「埋め込みSQL」ともいいます。
 ホスト言語により。あるいはホスト言語コンパイラの作成者により、SQLの埋め込み方法に違いがあるのは不便です。そのため、SQL国際規格の改訂のたびに、標準インタフェースの拡張が行われています。

ソースプログラムの通常のコンパイルをする前に、SQL命令文の構文解析をして、DBMSを呼出してSQL命令を通常のホスト言語に変換します。この処理をプレコンパイルといいます。これ以降は通常のホスト言語プログラムと同様にコンパイルされ、実行プログラムが生成されます。

すなわち、静的SQLでは、プログラムを作る段階で、処理内容が確定しており、SQL命令にデータベースの表や項目の名称などの誤りがないことが前提になります。

対話式SQL

対話式SQLとは、利用者がクライアント(パソコン)からSQL命令(コマンド)を入力すると、サーバにあるDBMSがそれを解析し、誤りがあればエラーメッセージを表示、誤りがなければ直ちに実行して、その結果をクライアントに表示する形式です。

WindowsではAccessというRDB処理ソフトがあります。SQL命令を直接記述する方法もあるし、画面で選択条件や照合条件を指定して内部的にSQL命令を生成する機能もありますが、いずれにせよ、「実行」をクリックすることにより対話式にSQLが実行されます。

動的SQL

対話式SQLのように、実行のつどSQLコマンドを解析して実行プログラムにするタイプを動的SQLといいます。
 動的SQLは、必ずしも対話式ではなく、バッチ処理で呼び出すこともあります。SQLコマンドそのもの(ソースプログラム)をライブラリの形式で保管しておき、アプリケーションから呼び出して実行させる形式です。

ライブラリのSQL文中には未決定の個所があり、アプリケーションによってその未決定の部分を確定して、それをパラメタとしてライブラリを呼び出すようなこともできます。
 このようなアプリケーションからの動的SQL呼出しには、カーソル操作命令がよく用いられます。


本シリーズの目次へ