SQL コンパイラ指令オプション
ACCESS (SQL コンパイラ指令オプション)
コンパイル時に SQL Server データベースを更新することで、アプリケーション コードおよび SQL をディプロイできるようにします。
ADOPICXISANSI
文字列変数および文字変数を ANSI として渡すように OpenESQL に指示します。
ALLOWNULLCHAR
プログラムで PIC X(
n
) ホスト変数を使用したり、CHAR カラムで 16 進数文字を選択、挿入、更新したりできます。この場合は、ソースを変更して SQL TYPE BINARY ホスト変数を使用する必要はありません。
ANSI92ENTRY
OpenESQL を SQL ANSI'92 エントリ レベル規格に準拠させます。
ARRAYCHECK
インジケーター変数配列がホスト配列変数と正しく一致しているかどうかを確認します。
AUTOCOMMIT
このオプションが設定されていると、各 SQL 文を個別のトランザクションとして処理し、実行後ただちにコミットします。このオプションを設定せずに、トランザクションに対応した ODBC ドライバーを使用する場合は、文をトランザクションの一部として明示的にコミット (またはロールバック) する必要があります。
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
OpenESQL で単一行を取り出す SELECT 文が複数行の結果を取得した場合にエラーを報告します。複数行を返す場合、OpenESQL は SQLCODE -811 を返します。NOCHECKSINGLETON が指定されている場合、OpenESQL は SQLCODE 0 を返します。
CONCAT
CONCAT 記号 (|) に使用する ASCII 文字コードを指定します。この指令は、デフォルト値を変更する場合にのみ使用します。
CONNECTIONPOOL
ODBC 3.0 の接続プールを有効にします。接続プールを有効にすると、アプリケーションで閉じた接続がドライバー マネージャーでは一定時間にわたって維持されるため、アプリケーションで同じ接続を再使用する場合に接続を再確立するためのオーバーヘッドが省けます。接続プールは、特定の ODBC 環境を対象として設定するか、各ドライバー単位で設定することができます。詳細は、ODBC のマニュアルを参照してください。
CTRACE
デバッグ情報をファイル
sqltrace.txt
に記述します。
CURSORCASE
ESQLVERSION の値が 2.0 の場合、CURSORCASE が暗黙で指定されます。NOCURSORCASE の場合は、カーソル名の大文字と小文字が区別されません。CURSORCASE を指定するとカーソル名の大文字と小文字が区別されます。以前のバージョンの OpenESQL では、カーソル名の大文字と小文字は区別されていました。
DATE
日付値がデータベースの日付列から文字出力ホスト変数に返されるときに使用する明示的な日付形式を指定します。
DATEDELIM
1 つの文字を、年、月、日コンポーネントの間の区切り文字として指定します。この指定は、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
動的 SQL 使用する際に、VARCHAR 列を含む記述済みまたは準備済み SQL 文は、長さおよびデータ用にレベル 49 のサブフィールドを含む VARCHAR ホスト変数に適しています。
DESCRIBEVARCHARPICX
動的 SQL 使用する際に、VARCHAR 列を含む記述済みまたは準備済み SQL 文は、PIC X ホスト変数に適しています。
DETECTDATE
OpenESQL アプリケーションでの PIC X 文字入力ホスト変数の datetime の値に、標準の ISO 8601 フォーマットとは別のフォーマットを使用できるようにします。
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 に設定してアプリケーションをコンパイルします。変数はプリコンパイラでは生成されません。
HSFTRACE 指令
アプリケーションが Enterprise Server で実行されている場合に、
各 SQL 文について HSF トレース ルーチンの呼び出しを生成します。場合により、アプリケーションを
mfsqlSMF.lib
にリンクする必要があります。
IGNORE-NESTED
入れ子のプログラムで、データベース インターフェイス コードの生成を開始するプログラム ID を指定します。プログラム ファイル名がそのプログラム ID と一致する場合、IGNORE-NESTED を指定するだけ済みます。
IGNORESCHEMAERRORS
スキーマ オブジェクトがない場合に発生するコンパイル時のエラーを回避します。
INIT
パラメーターなしで設定すると、プリプロセッサはコードを自動で生成しデータベースへの接続を確立します。PROT パラメーターを指定して設定すると、アプリケーションが異常終了したときにデータベースを保護します。
ISOLATION
この指令は、OpenESQL で接続属性として使用される分離レベルを指定します。また、BEHAVIOR 指令オプションのプリミティブ指令としても使用できます。
JIT
手続き部に EXEC SQL 文がある場合にのみ OpenESQL インターフェイス コードを生成します。
MARS
Microsoft SQL Server 2005 以降に接続する際に、複数のアクティブな結果セットを有効にします。この指令を使用するには、TARGETDB=MSSQLSERVER も指定する必要があります。
NESTEDCLRDEBUG
ネストされたストアド プロシージャの呼び出しをデバックできます。このパラメーターを使わないと、結果セットを戻すストアド プロシージャをデバッグできません。これは、Microsoft SQL Common Language Runtime の制限によるものです。NESTEDCLRDEBUG は、ネストされたストアド プロシージャの呼び出しから戻される結果セットをすべて破棄するようにプロセッサに指示します。これにより、デバッグが可能になります。
NIST
SQL ANSI 92 エントリ レベル標準の NIST 解釈に準拠するように OpenESQL を設定します。
NOT
NOT 記号 (¬) に使用する文字コードを指定します。この指令は、デフォルト設定を変更する場合のみに使用してください。
ODBCTRACE
ODBCTRACE=USER を指定すると、ODBC トレース処理を
ODBC コントロール パネル
から制御できます。このコントロール パネルを使用して、トレース対象のファイルを指定できます。
ODBCV3
この指令は、アプリケーションを ODBC バージョン 3 アプリケーションとして登録します。
OPTIMIZESPCURSORS
SQL CLR ストアド プロシージャでは、順方向読み取り専用カーソルをファイアホース カーソルとして開き、後続のカーソルが開くと、結果セットの残りをメモリに読み込んでパフォーマンスを最適化します。
OPTION (非推奨)
デフォルトではないオプションの動作を有効にします。
OPTPER
OpenESQL プリプロセッサで、CHARSET"EBCDIC" 処理のパフォーマンスを最適化させます。
PARAMARRAY
PARAMARRAY を設定すると、ODBC ドライバーが ODBC 配列バインドをサポートしている場合に、すべての入力パラメーターに ODBC 配列バインドを使用します。
PASS
データ ソースへの接続時に使用するログイン名。このオプションは INIT または CHECK オプション (あるいはその両方) とともに機能します。
PRE
PRE により、実行時にプリプロセッサが OpenESQL ランタイム モジュール (
odbcrw32.dll
) を動的にロードするコードを生成します。この設定は、LITLINK コンパイラ指令と競合します。このため LITLINK を使用する場合には、NOPRE を指定して、動的にロードするコードの生成を停止します。この場合は、ビルド設定で、リンクする LIB のリストに
odbcrw32.lib
を追加する必要があります。これにより、リンカーがコードを実行可能ファイルとして生成し、オペレーティング システムはその実行可能ファイルをロードする際に、
odbcrw32.dll
を暗黙的にロードします。
PREFETCH
アプリケーションはこの指令を使用して、OpenESQL がカーソルでブロックを取り込むように要求できます。この指令を使用すると、プログラムのロジックを変更せずにパフォーマンスを改善でき、配列取り込みをする場合と同様の効果が得られます。パフォーマンスの改善効果は、
n
値、および使用中の ODBC ドライバーが事前取り込みを使用するように構成されているかどうかに依存します。
PROCOB
DBMAN=ADO の使用時に、Pro*COBOL アプリケーションから OpenESQL に容易に移行できるようにします。
QUALFIX
ホスト変数を SQL に宣言するときに、OpenESQL プリプロセッサがそのホスト変数の名前に 3 文字を追加します。これにより、修飾によって起こる問題 (修飾されないと複数のホスト変数が同じ名前になる) を回避できますが、副作用として、ホスト変数名に 3 文字追加されているという SQL エラー メッセージが表示されることがあります。
RESULTARRAY
RESULTARRAY を設定すると、ODBC ドライバーが ODBC 配列バインドをサポートしている場合に、すべての出力パラメーターに ODBC 配列バインドを使用します。
SAVE-RETURN-CODE
RETURN-CODE を保存してさらに復元するかどうかを指定します。
SPCOMMITONRETURN
ストアド プロシージャが実行した処理が呼び出し元のアプリケーションに返る際に、その処理をコミットします。
SPDISPLAY
COBOL DISPLAY 情報の場所を指定します。
STMTCACHE
OpenESQL がキャッシュできる準備済み SQL 文の数を指定します。文をキャッシュすることで、プログラムの実行中にその文を再度準備する必要がなくなり、パフォーマンスが向上します。
TARGETDB
特定のデータ ソースのパフォーマンスを最適化する場合にこの指令を設定します。
TESTSQLSTATE
SQL 文の実行後に SQLCODE でなく SQLSTATE をテストするコードを生成するように、OpenESQL に指示します。
THREAD
接続に関してスレッドの処理方法を指定します。
TIME
時刻値がデータベースの時刻列から文字出力ホスト変数に返されるとき使用する明示的な時刻フォーマットを指定します。
TIMEDELIM
1 つの文字を、時間、分、秒コンポーネントの間の区切り文字として指定します。この指定は、TIME 指令の指定によって決められたデフォルトの区切り文字、またはデフォルトの ISO 8601 フォーマット (
hh:mm:ss
) に暗黙的に基づいて決められた区切り文字をオーバーライドします。
TRACELEVEL
ネイティブ アプリケーションで特定の操作をトレースしてアプリケーション動作の統計分析を生成します。この指令が生成するレポートは読みやすく、従来の ODBC トレースもよりも便利です。
TSTAMPSEP
datetime 値がデータベースの datetime 列から文字出力ホスト変数に返される際に、日付部と時刻部の間の区切り文字として使用する1 つの文字を指定します。
UNSAFE_NULL
null 値が返された際に null インジケーターが指定されていない場合に、エラーの発生を回避します。
USECURLIB
ODBC のカーソル ライブラリの使用を制御します。
USER-SQLDA
COPY SQLDA 文を使用せずに SQLDA を含んでいるアプリケーションについて、無効なホスト変数によるコンパイラ エラーの発生を防ぎます。
XAID
SQL Server の複数の XAR または単一の
エンタープライズ サーバー リージョン
で定義された ODBC RM タイプの汎用 1 フェーズ コミットの扱いを容易にします。
上位ヘルプ:
OpenESQL
関連概念
DBMAN 指令の設定
OpenESQL プリプロセッサとコンパイラ指令のオプション設定
SQL コード生成オプション