名前
sqlcc - SQL埋込みCプログラムのコンパイル・リンク
形式
sqlcc [ -l ソースリストを出力するディレクトリ ] [ -t Cプログラムソースを出力するディレクトリ ] [ { -I インクルードファイルの配置ディレクトリ} ... ] [ -d データベース名 ] [ { -W { 88 | 92 | 95 | 96 | 2000 | 2007 } | -R } ] [ -C ] [ -v9 ] [ -T ] [ -K ] SQL埋込みCプログラムのファイル名 [ ccコマンド用のオプション | gccコマンド用のオプション ]
機能説明
SQL埋込みCプログラムを、コンパイルおよびリンクします。
オプション
本コマンドのオプションはすべて環境変数“SQLPC”で指定することができます。
環境変数“SQLPC”にパラメタを設定しておくと、コマンド実行時にオプションを指定する必要がなくなります。
パラメタが重複した場合の優先順位は、本コマンドのオプション、環境変数“SQLPC”の順番となります。
以下にCシェルの例を示します。
setenv SQLPC '-l /sqlapp/list -t /sqlspp/csrc -l /sqlapp/include'
ソースリストの出力先ディレクトリを指定します。
ソースリストとは、SQL埋込みCプログラムの内容と行番号を、コンパイル後のソースファイルの行番号と対応付けたリストです。
ディレクトリに指定できる長さは、1024バイトまでです。
ソースリストのファイル名は、SQL埋込みCプログラムのファイル名の拡張子を“.lst”に変換したものになります。
本オプションを省略した場合、カレントディレクトリに出力されます。
コンパイル後のCプログラムのソースファイルを出力するディレクトリを指定します。
ディレクトリに指定できる長さは、1024バイトまでです。
ソースファイル名は、SQL埋込みCプログラムのファイル名の拡張子を“.c”に変換したものとなります。
本オプションを省略した場合、カレントディレクトリに出力されます。
SQL埋込みCプログラム中にINCLUDE文を記述している場合、取り込むファイルの配置先ディレクトリを指定します。
ディレクトリに指定できる長さは、1024バイトまでです。
このオプションは、複数回指定できますが、有効となるディレクトリの数は、環境変数での指定も含めて10個までです。
sqlccによるディレクトリのサーチ手順は、以下のようになります。
カレントディレクトリ
sqlccコマンドの-Iオプション
環境変数“SQLPC”の-Iオプション
環境変数“INCDIR”
SQL埋込みCプログラムで利用するデータベース名を指定します。
SQL文の予約語とSQL機能のレベルをSQL88、SQL92、SQL95、SQL96、SQL2000またはSQL2007でコンパイルする場合に指定します。
-Wオプションを指定した場合は、予約語とSQL機能のレベルを1つ選んで指定します。
また、-Rオプションを指定した場合は、SQL88でコンパイルします。
本オプションを省略した場合は、SQL2007でコンパイルします。
文字型のホスト変数に対してSQL埋込みCプログラムの実行時に、NULLを意識した処理をする場合に指定します。
(NULLまでの文字をデータとして扱うなど)
64ビットのSQL埋込みCプログラムを作成する場合に指定します。
Solarisの場合、本オプションは-Tオプションと同時に指定することはできません。
マルチスレッド上で動作するまたはセションを操作する関数を利用するSQL埋込みCプログラムを作成する場合に指定します。
Solarisの場合、本オプションは-v9オプションと同時に指定することはできません。
選択リストに“*”を指定したカーソル宣言および単一行SELECT文や、挿入列リストを省略したINSERT文が、アプリケーションに記述されていないかチェックする場合に指定します。
アプリケーションに記述されていた場合は、エラーメッセージを出力します。
オペランド
コンパイルおよびリンクの対象とする、SQL埋込みCプログラムのソースファイル名を指定します。
sqlccは、SQL埋込みCプログラムのロードモジュールを作成するために、ccコマンドを実行します。
このとき、ccコマンドに渡すオプションを指定します。
本オペランドは、Solarisの場合に指定できます。
sqlccは、SQL埋込みCプログラムのロードモジュールを作成するために、gccコマンドを実行します。
このとき、gccコマンドに渡すオプションを指定します。
本オペランドは、Linuxの場合に指定できます。
使用例
SQL埋込みCプログラムは“demo01.ec”に格納されているとします。
作成するロードモジュールのファイル名は“demo01”とします。
また、INCLUDE文により取り込むファイルが配置されたディレクトリは“/home/RDBII/include”とします。
sqlcc -I /home/RDBII/include demo01.ec -o ../bin/demo01
終了ステータス
以下の終了ステータスが返されます。
0 : 正常終了
0以外 : 異常終了
注意
オプション指定後の最初のオペランドを、SQL埋込みCプログラムのファイル名とみなします。
SQL埋込みCプログラムのファイル名の拡張子に“.c”および“.lst”は指定できません。
-dオプション指定をした場合は、同一システム内であることが必要です。
-dオプション指定をした場合は、SQL埋込みCプログラムにCONNECT文を記述してはいけません。
環境変数RDBDBにデータベース名を指定している場合でも、本コマンドで-dオプションを指定している場合は、-dオプションで指定したデータベース名が有効となります。
sqlccで作成されるファイルの一覧を以下の表に示します。ファイル名は、SQL埋込みCプログラムのファイル名の拡張子を、以下の表で示す拡張子に置き換えた名前となります。
ファイルの種類 | 拡張子 | 備考 |
---|---|---|
ソースファイル | ~.c | 作業用(注2) |
ソースリストファイル | ~.lst | 作業用 |
ロードモジュール | (注1) | SQL埋込みCプログラム |
注1) ロードモジュールのファイル名は、ccコマンド用の-oオプションで指定します。
省略した場合は、“a.out”という名前でカレントディレクトリに作成されます。
注2) C言語のデバッグを使用してデバッグを行う場合に必要となります。
sqlccの処理には、2つの段階があります。sqlccを実行すると、処理中の段階が以下のように表示されます。
“Preprocess”の表示は、コンパイル前処理の実行中を示します。ホスト変数の使用方法などに誤りがある場合のエラーは、この段階で検出されます。
“C compile”の表示は、ccコマンドによるコンパイル・リンクの実行中を示します。C言語の記述やロードモジュールのリンクに関するエラーは、この段階で検出されます。