SQL コンパイラ指令オプション
ACCESS (SQL コンパイラ指令オプション)
コンパイル時に SQL Server データベースを更新することで、アプリケーション コードおよび SQL をディプロイできるようにします。
ALLOWNULLCHAR
プログラムで PIC X(
n
) ホスト変数を使用したり、CHAR カラムで null 文字 (x00) を選択、挿入、更新したりできます。この場合は、ソースを変更して SQL TYPE BINARY ホスト変数を使用する必要はありません。
ALLOWSERVERSELECT
認識できない EXEC SQL SELECT 文をサーバーに渡して、サーバー固有の動作を有効にします。
ANSI92ENTRY
これを設定すると、OpenESQL が SQL ANSI'92 エントリ レベル規格に準拠します。
ARRAYCHECK
インジケーター変数配列がホスト配列変数と正しく一致しているかどうかを確認します。
AUTOCOMMIT
SQL 接続のオートコミット属性を制御します。
AUTOFETCH
SELECT 文に AUTOFETCH 属性を設定して、Microsoft SQL Server データ ソースで実行します。この指令を使用してコンパイルすると、アプリケーションのパフォーマンスが向上します。この指令は、プログラムを SQL(TARGETDB=MSSQLSERVER) 指令でコンパイルする場合にのみ機能します。また、BEHAVIOR 指令オプションのプリミティブ指令としても使用できます。
BEHAVIOR
使用中のデータベースで COBOL カーソルが正しく一致するよう OpenESQL に指示し、データベース カーソルのパフォーマンスを最大化できるようにします。BEHAVIOR は複数のプリミティブ指令を使用し、対象の DBMS に応じて各プリミティブ指令のデフォルト値を関連付けます。また、プリミティブ指令のデフォルト設定をオーバーライドすることもできます。
BIND
sqlcmd
または SQL Server Management Studio で使用可能な SQL バッチ スクリプトを生成して SQL Server データベースを更新することにより、アプリケーション コードをディプロイできるようにします。
コンパイルされた OpenESQL コードは、SQL バッチ スクリプトに含まれる SQL Server ストアド プロシージャへの呼び出しを行います。
CHECK
コンパイル時に各 SQL 文をデータベースに送信します。
CHECKDUPCURSOR
カーソルが 2 回開いたかどうかを判別するように OpenESQL に指示し、2 回開いた場合はそれに応じてアクションを実行します。
CHECKSINGLETON
シングルトン SELECT 文が実行時に複数の行を返すかどうかをチェックするように OpenESQL に指示します。
CLOSE_ON_COMMIT
WITH HOLD と定義されていないカーソルを閉じるか、COMMIT の後にさらにフェッチするために開いたままにするかを指定します。
CLOSE_ON_ROLLBACK
ROLLBACK の後にカーソルを閉じるか、さらにフェッチするために開いたままにするかを指定します。
CONCAT
CONCAT 記号 (|) に使用する ASCII 文字コードを指定します。この指令は、デフォルトを変更する場合にのみ使用してください。
CONNECTIONPOOL
ODBC 3.0 の接続プールを使用できるようにします。接続を閉じると、実際にはドライバー マネージャーがタイムアウト中にその接続を存続させておくため、アプリケーションが同じ接続を再使用する場合に、最初から接続を再確立するためのオーバーヘッドを節約できます。ODBC では、ODBC 環境用または各ドライバー用のプーリングを選択できます。詳細については、ODBC のドキュメントを参照してください。
CTRACE
デバッグ情報を、ファイル
sqltrace.txt
に記述します。
CURSORCASE
ESQLVERSION の値が 2.0 であれば CURSORCASE が暗黙で指定されます。NOCURSORCASE を指定すると、カーソル名の大文字と小文字が区別されません。CURSORCASE を指定すると、カーソル名の大文字と小文字が区別されます。以前のバージョンの OpenESQL では、カーソル名の大文字と小文字は区別されていました。
DATE
日付値がデータベースの日付列から文字出力ホスト変数に返される際に使用する明示的な日付形式を指定します。
DATEDELIM
単一の文字を、年、月、および日コンポーネント間の区切り文字として指定します。この指定は、DATE 指令の指定によって決められたデフォルトの区切り文字、またはデフォルトの ISO 8601 フォーマット (
yyyy-mm-dd
) に暗黙的に基づいて決められた区切り文字をオーバーライドします。
DB
データベース接続情報を定義するデータ ソースを指定します。
DBMAN
使用するプリプロセッサを指定します。この指令は、OpenESQL でプログラムをコンパイルする際には不要です。
DECDEL
10 進数変数に使用する小数点の区切り文字を指定します。
DESCRIBEDTCHAR
動的 SQL を使用する際に、DATE、TIME、および DATETIME 列を含む記述済みまたは準備済み SQL 文は、PIC X(
n
) 文字ホスト変数、または DATE、TIME、および TIMESTAMP SQL TYPE に適しています。
DESCRIBEDTREC
動的 SQL を使用する際に、DATE、TIME、および DATETIME 列を含む記述済みまたは準備済み SQL 文は、COBOL 形式のレコード構造内の DATE、TIME、および TIMESTAMP-RECORD SQL TYPE に適しています。
DESCRIBEVARCHAR49
VARCHAR 列は、長さとデータにレベル 49 サブフィールドを使用する VARCHAR ホスト変数に適しています。
DESCRIBEVARCHARPICX
動的 SQL 使用する際に、VARCHAR 列を含む記述済みまたは準備済み SQL 文は、PIC X ホスト変数に適しています。
DETECTDATE
OpenESQL アプリケーションでの PIC X 文字入力ホスト変数の datetime の値に、ISO 8601 の標準フォーマットとは別のフォーマットを使用できるようにします。
ERRORMAP
この指令は、使用するエラー マップ ファイルの名前を指定し、SQL エラー マッピングを有効にします。
ESQLVERSION
OpenESQL の構文レベルを設定します。
FIPSFLAG
FIPS フラグを有効にします (NIST 証明が必要な場合のみ)。
GEN-CC2
呼び出し規則 74 の代わりに呼び出し規則 2 を使用して ESQL API 呼び出しを生成します。
GEN-CLASS-VAR
Net Express から移行したオブジェクト指向 SQL COBOL プログラムとの下位互換を可能にし、ローカル記憶域の末尾に加えてオブジェクト記憶域の末尾でも SQL インターフェイス変数を生成するように、OpenESQL プリプロセッサに指示します。
GEN-HV-FROM-GROUP
複数レベルのグループ変数を FETCH またはシングルトン SELECT SQL 文で使用すると、すべての基本データ項目のホスト変数を生成します。
GEN-INIT-FLAG
DBS for OS/390 との互換性のために SQL-INIT-FLAG 変数を生成します。このフラグは、SQL 環境を初期化すると更新されます。この変数をアプリケーションで定義する場合は、この指令を NOGEN-INIT-FLAG に設定してアプリケーションをコンパイルします。変数はプリコンパイラでは生成されません。
GEN-SQLCA
アプリケーション プログラムでコーディングする EXEC SQL INCLUDE SQLCA 文と同等の SQLCA を生成します。
HSFTRACE
各 SQL 文について HSF トレース ルーチンの呼び出しを生成します。場合により、アプリケーションを
mfsqlSMF.lib
にリンクする必要があります。
IGNORE-NESTED
入れ子のプログラムで、データベース インターフェイス コード生成の開始地点である program-id を指定します。IGNORE-NESTED だけを指定して program-id を省略すると、ソース ファイル名が program-id であると見なされます。
IGNORESCHEMAERRORS
スキーマ オブジェクトが欠落していることによるコンパイル時エラーを抑制します。
INIT
パラメーターなしで設定すると、プリプロセッサはコードを自動で生成しデータベースへの接続を確立します。PROT パラメーターを指定して設定すると、アプリケーションが異常終了したときにデータベースを保護します。
ISOLATION
この指令は、接続属性として OpenESQL が使用する分離レベルを指定します。また、BEHAVIOR 指令オプションのプリミティブ指令としても使用できます。
JIT
手続き部に EXEC SQL 文があるときのみ OpenESQL インターフェイス コードを生成します。
JNDI
JNDI クラスを指定して使用して、EXEC SQL CONNECT 文で指定されるデータ ソース名、または SQL(CHECK) コンパイラ指令も指定されている場合に SQL(DB) コンパイラ指令によってコンパイル時に指定されるデータ ソース名の接続文字列を検索できます。
JNDIENC
JNDI を使用して JDBC データ ソース名を検索する際に、アプリケーションで JNDI Environment Naming Context (ENC) を使用できるようにします。
MARS
Microsoft SQL Server に接続する際に、複数のアクティブな結果セットを有効にします。
NIST
SQL ANSI 92 エントリ レベル規格の NIST 解釈に準拠するように OpenESQL を設定します。
NOT
NOT 記号 (¬) に使用する文字コードを指定します。この指令は、デフォルト設定を変更する場合にのみ使用してください。
ODBCTRACE
ODBCTRACE=USER を指定する場合は、ODBC トレース処理を
ODBC コントロール パネル
(Windows) または
odbc.ini
(UNIX)
で制御できます。これにより、トレース対象のファイルを指定できます。
ODBCV3
この指令は、アプリケーションを ODBC バージョン 3 アプリケーションとして登録します。
ODBCVER
この指令は、アプリケーションを ODBC バージョン 2、3.x、または 3.8 アプリケーションとして登録します。
OPTIMIZECURSORS
Oracle、PostgreSQL、DB2、または SQL Server
JDBC
プロバイダーを使用する場合のメモリ消費を最適化します。また、DBMAN=ODBC および
DBMAN=JDBC
で WITH HOLD 句および FOR UPDATE 句を使用する埋め込み SQL カーソルについて、すべてのデータベースで同じデータ整合性ルールを適用します。
OPTION (非推奨)
デフォルトではないオプションの動作を可能にします。
OPTPER
OpenESQL プリプロセッサで、CHARSET"EBCDIC" 処理のパフォーマンスを最適化させます。
PARAMARRAY
PARAMARRAY を設定すると、すべての入力パラメーターに ODBC 配列バインドが使用されます (ODBC ドライバーがサポートされている場合)。
PASS
データ ソースへの接続に使用するログイン名。このオプションは INIT または CHECK オプション (あるいはその両方) と組み合わせて機能します。
PICXBINARY
プログラムで PIC X(
n
) ホスト変数を使用して、BINARY、VARBINARY、LONGVARBINARY 列からバイナリ形式でデータを受信できるようになります。この際に、ソースを変更して SQL TYPE BINARY ホスト変数を使用する必要はありません。
PICXBINDING
固定長の PIC X(
n
) ホスト変数の処理を指定します。
PRE
実行時に OpenESQL モジュールを動的にロードするコードを生成するようにプリプロセッサに指示します。
PREFETCH
アプリケーションはこの指令を使用して、OpenESQL がカーソルでブロックを取り込むことを要求できます。この指令により、プログラムのロジックを変更せずにパフォーマンスを改善でき、配列のフェッチをする場合と同様の効果が得られます。パフォーマンスの向上は、
n
の値、および事前取り込みを使用するように構成された使用中の ODBC ドライバーに依存します。
QUALFIX
ホスト変数を SQL に宣言する際に、OpenESQL プリプロセッサがそのホスト変数の名前に 3 文字を追加するようにします。これにより、修飾によって起こる問題 (修飾されないと複数のホスト変数が同じ名前になる) を回避できますが、副作用として、ホスト変数名に 3 文字追加されているという SQL エラー メッセージが表示されることがあります。
RESULTARRAY
RESULTARRAY を設定すると、すべての出力パラメーターに対して ODBC 配列バインドを使用します (ODBC ドライバーが配列バインドをサポートしている場合)。
SAVE-RETURN-CODE
RETURN-CODE を保存してから復元するかどうかを指定します。
SPDISPLAY
COBOL DISPLAY 情報にどこでアクセスできるかを指定します。
STMTCACHE
OpenESQL がキャッシュできる準備済み SQL 文の数を指定します。文をキャッシュすることで、プログラムの実行中にその文を再度準備する必要がなくなるため、パフォーマンスが向上します。
TARGETDB
特定のデータ ソースのパフォーマンスを最適化する場合にこの指令を設定します。
TESTSQLSTATE
SQL 文の実行後に SQLCODE でなく SQLSTATE をテストするコードを生成するように、OpenESQL に指示します。
THREAD
接続に関してスレッドの処理方法を指定します。
TIME
時刻値がデータベースの時刻列から文字出力ホスト変数に返されるとき使用する明示的な時刻フォーマットを指定します。
TIMEDELIM
1 つの文字を、時間、分、秒コンポーネントの間の区切り文字として指定します。この指定は、TIME 指令の指定によって決められたデフォルトの区切り文字、またはデフォルトの ISO 8601 フォーマット (
hh:mm:ss
) に暗黙的に基づいて決められた区切り文字をオーバーライドします。
TRACELEVEL
ネイティブ アプリケーションで特定の操作をトレースしてアプリケーション動作の統計分析を生成します。この指令が生成するレポートは読みやすく、従来の ODBC トレースよりも便利です。
TRANSACTION
これは OpenESQL にランタイム トランザクションを管理するための仕様を提供するための指令で、場合によってはコンパイル時のチェックも可能にします。
TSTAMPSEP
datetime 値がデータベースの datetime 列から文字出力ホスト変数に返される際に、日付と時刻の間の区切り記号として使用する単一の文字を指定します。
USECURLIB
ODBC のカーソル ライブラリの使用を制御します。
USER-SQLDA
COPY SQLDA 文を使用せずに SQLDA を含んでいるアプリケーションで、無効なホスト変数コンパイラ エラーが生じないようにします。
WHERECURRENT
PostgreSQL および MySQL で、位置指定の更新 (UPDATE) や削除 (DELETE) が必要ない場合に、更新可能な SELECT 文および CURSOR 文を受け入れられるようにします。
XAID
SQL Server の複数の XAR または単一の
エンタープライズ サーバー リージョン
で定義された ODBC RM タイプの汎用 1 フェーズ コミットの扱いを容易にします。
上位ヘルプ:
OpenESQL
関連概念
OpenESQL プリプロセッサとコンパイラ指令のオプション設定
SQL コード生成オプション
DBMAN 指令の設定