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

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ プログラミング » Embedded SQL

 

SQL プリプロセッサ

SQL プリプロセッサの実行プログラム名は sqlpp です。

プリプロセッサのコマンドラインを次に示します。

sqlpp [ options ] sql-filename [ output-filename ]

プリプロセッサは、C または C++ のソースファイル内の Embedded SQL 文を C コードに変換し、その結果を出力ファイルに出力します。次に、C または C++ コンパイラを使用して出力ファイルを処理します。Embedded SQL を含んだソースプログラムの拡張子は通常 .sqc です。デフォルトの出力ファイル名は拡張子 .c が付いた sql-filename です。sql-filename にすでに .c 拡張子が付いている場合、出力ファイルのデフォルトの拡張子は .cc に変更されます。

注意

新しいメジャーバージョンのデータベースインタフェースライブラリを使用するようにアプリケーションを再構築するときは、同じバージョンの SQL プリプロセッサで Embedded SQL ファイルを前処理する必要があります。

プリプロセッサのオプションを次の表に示します。

オプション 説明
-d データ領域サイズを減らすコードを生成します。データ構造体を再利用し、実行時に初期化してから使用します。これはコードサイズを増加させます。
-e level

指定した標準に含まれない静的 Embedded SQL をエラーとして通知します。level 値は、使用する標準を表します。たとえば、sqlpp -e c03 ... は、コア SQL/2008 規格に含まれない構文を通知します。サポートされる level 値は、次のとおりです。

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

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

  • 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 によって出力される行の最大長を width に制限します。行の内容が次の行に続くことを表す文字は円記号 (\) です。また、width に指定できる最小値は 10 です。
-k コンパイルされるプログラムが SQLCODE のユーザ宣言をインクルードすることをプリプロセッサに通知します。定義は long 型である必要がありますが、宣言セクション内で指定する必要はありません。
-m mode

Embedded SQL アプリケーションで明示的に指定されていない場合、カーソルの更新可能性モードを指定します。mode は次のいずれかである可能性があります。

  • HISTORICAL   以前のバージョンでは、Embedded SQL のカーソルは (クエリや ansi_update_constraints オプション値に応じて) デフォルトで FOR UPDATE または READ ONLY になっていました。明示的なカーソル更新可能性は DECLARE CURSOR で指定されました。この動作を維持するためには、このオプションを使用してください。

  • READONLY   Embedded SQL のカーソルはデフォルトで READ ONLY になります。明示的なカーソル更新可能性は PREPARE で指定されます。これはデフォルトの動作です。READ ONLY カーソルによってパフォーマンスが向上する場合があります。

-n C ファイルに行番号情報を生成します。これは、生成された C コード内の適切な場所にある #line ディレクティブで構成されます。使用しているコンパイラが #line ディレクティブをサポートしている場合、このオプションを使うと、コンパイラは SQC ファイル (Embedded SQL が含まれるファイル) の中の行番号を使ってその場所のエラーをレポートします。これは、SQL プリプロセッサによって生成された C ファイルの中の行番号を使って、その場所のエラーをレポートするのとは対照的です。また、ソースレベルデバッガも、#line ディレクティブを間接的に使用します。このため、SQC ソースファイルを表示しながらデバッグできます。
-o operating-system

ターゲットオペレーティングシステムを指定します。サポートされているオペレーティングシステムは次のとおりです。

  • WINDOWS   Windows Mobile を含む Microsoft Windows。

  • UNIX   32 ビットの UNIX アプリケーションを作成している場合はこのオプションを指定します。

  • UNIX64   64 ビットの UNIX アプリケーションを作成している場合はこのオプションを指定します。

-q クワイエットモード (メッセージを表示しない)

-r-

再入力不可コードを生成します。
-s len プリプロセッサが C ファイルに出力する文字列の最大サイズを設定します。この値より長い文字列は、文字のリスト ('a''b''c' など) を使用して初期化されます。ほとんどの C コンパイラには、処理できる文字列リテラルのサイズに制限があります。このオプションを使用して上限を設定します。デフォルト値は 500 です。
-u Ultra Light 用コードを生成します。
-w level

指定した標準に含まれない静的 Embedded SQL を警告として通知します。level 値は、使用する標準を表します。たとえば sqlpp -w c08 ... は、コア SQL/2008 構文に含まれない SQL 構文を通知します。サポートされる level 値は、次のとおりです。

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

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

  • 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 cs

照合順を指定します。推奨する照合順のリストを表示するには、コマンドプロンプトで dbinit -l を実行してください。

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

sql-filename 処理される Embedded SQL が含まれる C プログラムまたは C++ プログラム。
output-filename SQL プリプロセッサが作成した C 言語のソースファイル。
 参照