Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Ultra Light データベース管理とリファレンス » Ultra Light データベースのリファレンス » Ultra Light ユーティリティ

 

Ultra Light SQL プリプロセッサ・ユーティリティ (sqlpp)

Embedded SQL (ESQL) を含む C/C++ のプログラムをプリプロセッサで処理し、コンパイラを実行する前に、このプログラムに必要なコードを生成できるようにします。次の表では、万全を期すためにすべてのオプションについて説明していますが、Ultra Light に関連するオプションは -eu-wu のみです。

構文
sqlpp -u [ options ] esql-filename [ output-filename ]
オプション 説明
-d データ領域サイズを減らし、コード・サイズを増加させるコードを生成します。データ構造体を再利用し、実行時に初期化してから使用します。
-e flag

このオプションは、指定した規格に含まれない静的 Embedded SQL をエラーとして通知します。level 値は、使用する規格を表します。たとえば、sqlpp -e c03 ... は、コア SQL/2003 規格に含まれない構文を通知します。

level として使用される値は次のとおりです。

  • c03   コア SQL/2003 構文でない構文を通知します。

  • p03   上級レベル SQL/2003 構文でない構文を通知します。

  • c99   コア SQL/1999 構文でない構文を通知します。

  • p99   上級レベル SQL/1999 構文でない構文を通知します。

  • e92   初級レベル SQL/1992 構文でない構文を通知します。

  • i92   中級レベル SQL/1992 構文でない構文を通知します。

  • f92   上級レベル SQL/1992 構文でない構文を通知します。

  • t   標準ではないホスト変数型を通知します。

  • u   Ultra Light がサポートしていない構文を通知します。

以前のバージョンの SQL Anywhere と互換性を保つために、e、I、f を指定することもできます。これらはそれぞれ e92、i92、f92 に対応します。

-h width sqlpp によって出力される .c ファイル内の分割された行の最大長を width に制限します。分割された行が C コンパイラで 1 行として解析されるように、分割された行の末尾には円記号が追加されます。デフォルト値はありません (出力の行はデフォルトで分割されません)。
-k コンパイルされるプログラムが SQLCODE のユーザ宣言をインクルードすることをプリプロセッサに通知します。
-n

コード内の適切な場所で #line ディレクティブを使用して、C ファイル内に行番号情報を生成します。

このオプションを使用して、ソースのエラーをレポートし、また output-filename ファイルではなく、esql-filename ファイル内の行番号にあるソースをデバッグできます。

-o O/S spec Ultra Light には不適用。
-q ユーティリティをクワイエット・モードで実行するように設定します。情報のバナー、バージョン番号、ステータス・メッセージが非表示になります。エラー・メッセージは引き続き表示されます。
-r Ultra Light には不適用。
-s string-length プリプロセッサが C ファイルに出力する文字列の最大サイズを設定します。この値より長い文字列は、文字のリスト ('a''b''c' など) を使用して初期化されます。ほとんどの C コンパイラには、処理できる文字列リテラルのサイズに制限があります。このオプションを使用して上限を設定します。デフォルト値は 500 です。
-u Ultra Light で必須です。Ultra Light データベースに必要な出力を生成します。
-w level

SQL 構文に準拠しないものを警告として通知します。level 値は、使用する規格を表します。たとえば sqlpp -w c03 ... は、コア SQL/2003 構文に含まれない SQL 構文を通知します。

level として使用される値は次のとおりです。

  • c03   コア SQL/2003 構文でない構文を通知します。

  • p03   上級レベル SQL/2003 構文でない構文を通知します。

  • c99   コア SQL/1999 構文でない構文を通知します。

  • p99   上級レベル SQL/1999 構文でない構文を通知します。

  • e92   初級レベル SQL/1992 構文でない構文を通知します。

  • i92   中級レベル SQL/1992 構文でない構文を通知します。

  • f92   上級レベル SQL/1992 構文でない構文を通知します。

  • t   標準ではないホスト変数型を通知します。

  • u   Ultra Light がサポートしていない構文を通知します。

以前のバージョンの SQL Anywhere と互換性を保つために、e、I、f を指定することもできます。これらはそれぞれ e92、i92、f92 に対応します。

-x マルチバイト文字列をエスケープ・シーケンスに変更し、コンパイラをパススルーできるようにします。
-z collation-sequence 照合順を指定します。
備考

このプリプロセッサは、入力ファイル内の SQL 文を C/C++ に変換します。結果は output-filename に書き込みます。Embedded SQL を含むソース・プログラムの拡張子は通常は sqc です。デフォルトの output-filename は拡張子 c が付いた esql-filename ベースの名前です。ただし、esql-filename に拡張子 .c がすでに付いている場合、デフォルトの出力ファイル拡張子は .cc になります。

照合順は、プリプロセッサにプログラムのソース・コードで使用されている文字を理解させるために使用します。たとえば、識別子に使用できるアルファベット文字の識別などに使用されます。Ultra Light では、照合にコード・ページとソート順が含まれます。-z を指定しなかった場合は、プリプロセッサが、オペレーティング・システムに基づいて、使用する合理的な照合順を決定しようとします。

コマンド・プロンプトで ulcreate -l を実行すると、サポートされている照合と対応するコード・ページのリストが表示されます。

ヒント

SQL プリプロセッサ (sqlpp) には、Embedded SQL アプリケーション内の静的 SQL 文をコンパイル時に通知する機能があります。この機能は、Ultra Light アプリケーションを開発するときに特に便利です。この機能で、SQL 文に Ultra Light との互換性があることを確認できます。SQL Anywhere アプリケーションと Ultra Light アプリケーションの両方に対する SQL の互換性をテストするには、-e オプションか -w オプションまたはその両方を使用します。SQL FLAGGER の詳細については、SQL FLAGGER を使用した SQL 準拠のテストを参照してください。

参照

次のコマンドは、Ultra Light アプリケーション用に Embedded SQL ファイル srcfile.sqc をクワイエット・モードで前処理します。

sqlpp -u -q MyEsqlFile.sqc