Visual FoxPro で SQL テーブルにクエリを実行する日付または時刻の値を書式設定する

この記事では、Visual FoxPro でリモート ビューまたは SQL パススルー クエリを使用して、SQL Server テーブルから日付または時刻の値を照会する方法について説明します。

元の製品バージョン: Visual FoxPro
元の KB 番号: 145817

導入

Visual FoxPro では、日付型の入力データを {mm/dd/yy} として書式設定できます。 または、日付フィールドに直接入力する場合は、日付型の入力データを mm/dd/yy として書式設定できます。 ただし、SQL テーブルでリモート クエリを実行するときに、データを {mm/dd/yy} または mm/dd/yy として書式設定すると、ODBC エラーが発生します。

詳細

リモート クエリの日付値、時刻値、または timestamp 値を SQL テーブルに渡す場合は、次のエスケープ句を使用してデータを書式設定する必要があります。

  • 日付値: {d 'yyyy - mm - dd'}。 この形式では、 yyyy は年を表し、 mm は月を表し、 dd は日を表します。

  • 時間値: {t 'hh : mm : ss'}。 この形式では、 hh は時間を表し、 mm は分を表し、 ss は秒を表します。

  • タイムスタンプ値: {ts 'yyyy - mm - ddhh : mm : ss'}。

SQL パススルー クエリでは、次の構文を使用して日付フィールドの値を取得できます。

 =SQLEXEC( nConnHandle, "SELECT * FROM TITLES WHERE
 Titles.pubdate<{ts '1995-06-12 12:55:00'}", 'MyCursor')

次の構文を使用して、日付と時刻の情報を照会するリモート ビューを作成できます。

 CREATE SQL VIEW sqldate REMOTE CONNECTION sqldate AS SELECT * FROM ;
 dbo.titles WHERE Titles.pubdate<{ts '1985-06-12 12:55:00'}

[表示] Designerで、[選択条件] タブの [例] フィールドで、日付値、時刻値、またはタイムスタンプ値が必要な形式になっていることを確認します。ビューを保存すると、[例] フィールドの情報がビューと共に保存されます。 ビューを開いて変更すると、[例] フィールドの情報は失われます。 これを行う場合は、もう一度情報を入力する必要があります。

注:

値を渡す代わりにリモート クエリでフィールド名をパラメーターとして渡すと、Visual FoxPro で変換が実行されるため、ODBC エラーは発生しません。

関連情報

ODBC 2.0 プログラマリファレンスおよび SDK ガイド、pp.50-52、Microsoft Press。