OpenESQL アプリケーションでの PIC X 文字入力ホスト変数の datetime の値に、ISO 8601 の標準フォーマットとは別のフォーマットを使用できるようにします。
DETECTDATE によって、入力ホスト変数の代替フォーマットを指定できます。OpenESQL は、DETECTDATE で指定されたフォーマットと DBMS で認識されるフォーマット間の変換を管理します。これは、SQL 呼び出しごとに入出力の両方で行われます。
たとえば、日付および時刻データに標準の ISO フォーマットでなく EUR フォーマットを使用することが望ましい場合があります。
重要: DETECTDATE は、どうしても必要な場合にのみ、慎重に使用してください。DETECTDATE を使用する前に、ここに示されるすべてのオプション、「OpenESQL 日付時刻データ型の処理」に記載のすべての情報、「DATE」、「DATEDELIM」、「TIME」、「TIMEDELIM」の各トピックにある情報を検証し、アプリケーションに最適なオプションを検討してください。
構文:
[NO]DETECTDATE
DETECTDATE={CLIENT | SQLTYPE | SERVER | PICX}
パラメーター:
- CLIENT
- DBMAN=ODBC にのみ適用されます。
- 入力ホスト変数
- PIC X 文字入力ホスト変数の場合、OpenESQL は指定された datetime フォーマットを認識し、そのデータを DBMS で許容される ISO 8601 フォーマットに変換します。入力ホスト変数に指定される datetime フォーマットは次のとおりです。
- Date
- デフォルトの ISO 8601 フォーマット。DATE 指令または DATEDELIM 指令 (あるいはその両方) を指定することでオーバーライドできます。
- Time
- デフォルトの ISO 8601 フォーマット。TIME 指令または TIMEDELIM 指令 (あるいはその両方) を指定することでオーバーライドできます。
- Datetime
- デフォルトの ISO 8601 フォーマット。TSTAMPSEP 指令を指定することでオーバーライドできます。
ダッシュ文字は、ダッシュ、スペース、T などの特定の区切り文字セットを探すように OpenESQL に指示します。たとえば、日付または時刻の代替フォーマットを指定せず、TSTAMPSEP をダッシュ文字 (-) に設定すると、OpenESQL は入力ホスト変数で次のフォーマットを認識します。
- yyyy-mm-dd-hh.mm.ss.ffffff
- yyyy-mm-dd hh.mm.ss.ffffff
- yyyy-mm-dd hh:mm:ss.ffffff
- yyyy-mm-ddThh.mm.ss.ffffff
- yyyy-mm-ddThh:mm:ss.ffffff
他のすべての文字は、各日付および時刻フォーマットの間でその特定の文字を探すように OpenESQL に指示します。その場合、日付部はダッシュ文字 (-) で区切られ、時刻部はコロン (:) で区切られます。
- 出力ホスト変数
- PIC X 出力文字ホスト変数の場合、OpenESQL は次の datetime フォーマットで出力ホスト変数のデータを返します。
- Date
- デフォルトの ISO 8601 フォーマット。DATE 指令または DATEDELIM 指令 (あるいはその両方) を指定することでオーバーライドできます。
- Time
- デフォルトの ISO 8601 フォーマット。TIME 指令または TIMEDELIM 指令 (あるいはその両方) を指定することでオーバーライドできます。
- Timestamp
- デフォルトの ISO 8601 フォーマット。TSTAMPSEP 指令を指定することでオーバーライドできます。TSTAMPSEP をダッシュ (-) 文字 (TSTAMPSEP="-") に設定すると、OpenESQL は datetime 列を次のフォーマットで返します。
yyyy-mm-dd-hh.mm.ss.ffffff
- SQLTYPE
-
注: Enterprise Developer バージョン 2.3 以降では非推奨の機能です。下位互換性のためにのみ提供されています。SQLTYPE ホスト変数の日時処理は DETECTDATE に依存しなくなりました。
DBMAN=ODBC のみに適用されます。処理は CLIENT オプションと同一ですが、SQLTYPE ホスト変数のみに適用され PIC X には適用されません。
- SERVER
- DBMAN=ODBC のみに適用されます。
DBMS に対して SQLDescribeParam 呼び出しを発行し、どの入力ホスト変数および出力ホスト変数がデータベースの特定の文字の列または日時の列に関連付けられているかを特定します。日時の列に関連付けられているホスト変数は、CLIENT
にリストされる日時のフォーマットを使用して変換されます。文字の列は変換されません。
- PICX
- CLIENT オプションと同じです。下位互換性のために提供されています。
プロパティ:
デフォルト: |
DETECTDATE を指定しない場合、デフォルトは次のようになります。NODETECTDATE
DETECTDATE を引数なしで指定する場合、デフォルトは次のようになります。DETECTDATE=CLIENT
|
範囲:
コンパイル時の使用: |
あり |
実行時の動作: |
ソース ファイル |
詳細については、「範囲 - OpenESQL SQL コンパイラ指令オプション」を参照してください。