マクロ・オプションのMODEを使用すると、ANSIと互換性のある特性の設定や、多くの機能の制御ができます。値にはANSIまたはORACLEを設定できます。個々の機能には、MODE設定に優先するマイクロ・オプションがあります。MODEも参照してください。
動的SQLでの記述子の動作を指定する場合は、プリコンパイラ・マイクロ・オプションDYNAMICを使用します。ANSIとORACLEのどちらのデータ型を使用するかを指定する場合は、プリコンパイラ・マイクロ・オプションTYPE_CODEを使用します。
マクロ・オプションMODEをANSIに設定すると、マイクロ・オプションDYNAMICは自動的にANSIになります。MODEをORACLEに設定すると、DYNAMICはORACLEになります。
DYNAMICおよびTYPE_CODEはインラインでは使用できません。
次の表に機能とDYNAMICの設定がその機能に与える影響を示します。
表14-2 DYNAMICオプションの設定
機能 | DYNAMIC = ANSI | DYNAMIC = ORACLE |
---|---|---|
記述子の作成。 |
ALLOCATE文を使用する必要があります。 |
関数SQLSQLDAAlloc()を使用する必要があります。SQLLIBパブリック関数の新しい名前を参照してください。 |
記述子の破壊。 |
DEALLOCATE文を使用できます。 |
関数SQLLDAFree()が使用可能です。SQLLIBパブリック関数の新しい名前を参照してください。 |
データの取得。 |
FETCH文およびGET文のどちらも使用できます。 |
FETCH文のみ使用できます。 |
入力データの設定。 |
DESCRIBE INPUT文を使用できます。SET文を使用する必要があります。 |
コードに記述子値を設定する必要があります。DESCRIBE BIND VARIABLES文を使用する必要があります。 |
記述子の表現。 |
引用符付きのリテラル、または記述子名を含むホスト識別子。 |
ホスト変数、SQLDAを指すポインタ。 |
利用可能なデータ型。 |
BITを除くすべてのANSI型、およびすべてのOracle型。 |
オブジェクト、LOB、構造体の配列およびカーソル変数以外のOracle型。 |
マイクロ・オプションTYPE_CODEは、プリコンパイラによってマクロ・オプションMODEと同じ値に設定されます。DYNAMICがANSIの場合、TYPE_CODEはANSI以外には設定できません。
TYPE_CODE設定に対応する機能は次のとおりです。
表14-3 TYPE_CODEオプションの設定
機能 | TYPE_CODE = ANSI | TYPE_CODE = ORACLE |
---|---|---|
動的SQLからの入出力に使用するデータ型コード番号。 |
ANSI型があるときはANSIコード番号を使用します。ない場合はOracleコード番号の負の値を使用します。 DYNAMIC = ANSIのときにのみ有効です。 |
Oracleコード番号を使用します。 DYNAMICの設定に関係なく使用できます。 |