8.2.1 プリプロセスの概要
(1) プリプロセスとは
SQLを埋め込んだUAPのソースファイルは,そのままではコンパイルできないため,SQLプリプロセサを実行する必要があります。SQLプリプロセサを実行すると,埋め込まれたSQL文は,高級言語用の記述に変換されます。このSQLプリプロセサを実行して,UAPソースを言語コンパイラで変換できるポストソースに変換することをプリプロセスといいます。
SQLプリプロセサは,SQL文に対応した高級言語の関数を生成し,ソース中に埋め込みます。このとき,変数のデータ型の妥当性,値の妥当性,及び各種名称のシンタクスについてチェックします。チェックした結果,入力ソースプログラム中にエラーを検出すると,メッセージを標準エラー出力に出力します。
(2) SQLプリプロセサでチェックされない項目
SQLプリプロセサを実行しても,次に示す内容についてはチェックされません。
-
サーバに問い合わせが必要な表名があるかどうか
-
サーバに問い合わせが必要な列名があるかどうか
-
サーバに問い合わせが必要な,ほかの識別子,データ型,関数があるかどうか
-
表に対するアクセス権限
(3) プリプロセスをする場合の注意事項
-
SQLプリプロセサは,ソースプログラムに使用している高級言語,及び環境によって,環境変数の設定,及びコマンドの指定方法が異なるため,使用している言語や環境に合わせる必要があります。
-
Windows環境でのSQLプリプロセサでは,/Xpを指定しないと厳密なSQLの構文チェックができないため,SQL文に文法上のエラーがあっても発見できないことがあります。また,AIX版のクライアントで文字コードがSJIS以外の場合,厳密なSQLの構文チェックはできません。
-
Windows環境ではEUCコードを認識できないため,使用できる文字コードはsjis又はlang-cだけです。HiRDBサーバの文字コード種別にsjis又はlang-c以外を指定している場合,HiRDBクライアントでUAPを実行するとエラーになります。