paradox7のデータ項目が D の日付型になっています、
カレンダーをクリックしてある日を検索したいのですが
SQLの書き方ができません。
検索して表示させたいのですが。。。
MonthCalendar の日付をクリックして表示させたいのです。
var
days : double; として
days:=Monthcalendar1.date;
Query1.SQL.Add('Select * from DataDB');
以下をどのように書くのでしょうか?
Query1.SQL.Add('where day=day');
paradox7 の日付型はdouble とのことです。
Monthcalendar1.date はdate 型ですので
どうしたものでしょうか?
よろしくお願いします。 ちゃん
試したわけでは、ありませんが、
with Query1 do
begin
SQL.clear;
SQL.Add('select * from DataDB where day = :ParamDate');
ParamByName('ParamDate').AsDate := Monthcalendar1.Date;
end;
のような感じでは、できませんか?
>以下をどのように書くのでしょうか?
>
>Query1.SQL.Add('where day=day');
Query1.SQL.Add(Format(
'WHERE (day = "%s")',
[FormatDateTime('mm"/"dd"/"yyyy', Monthcalendar1.date)]
));
です。
早速の回答ありがとうございます。
igy さん
ParamByName は未定義の識別子と出てしまいます。
Basser さん
キーワードの使用が無効です
キーワード Day
行番号2:
と出てきます。
テーブルの構造情報では
FieldName = Day
Type = D
となっていますので なぜ Day ?。。
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from DataDB');
Query_Trail.SQL.Add(Format(
'WHERE (Day = "%s")',
[FormatDateTime('mm"/"dd"/"yyyy', Monthcalendar1.date)]
));
Query1.open;
とそっくりまねて書くしか芸がありません。
よろしくお願いします。
>igy さん
> ParamByName は未定義の識別子と出てしまいます。
ParamByName('ParamDate').AsDate := Monthcalendar1.Date;
の部分を
Query1.ParamByName('ParamDate').AsDate := Monthcalendar1.Date;
にしたら、どうですか?
>Query_Trail.SQL.Add(Format(
は
Query1.SQL.Add(Format(
ですよね。
> キーワードの使用が無効です
> キーワード Day
> 行番号2:
> と出てきます。
で、
> 'WHERE (Day = "%s")',
この部分のダブルクォーテーションをシングルクォーテーションにしたらどうなります?
'WHERE (Day = ''%s'')', // " を '' に置き換えています。
>Basser さん
> キーワードの使用が無効です
> キーワード Day
> 行番号2:
> と出てきます。
> テーブルの構造情報では
> FieldName = Day
> Type = D
> となっていますので なぜ Day ?。。
フィールド名 Day は、ローカルSQLで予約語になっていますね。
フィールド名を変更しないといけないでしょう。
DAYが予約語ということで
データベースの項目名を
「DAY」から「日付」という項目名に変更しました。
1:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from DataDB');
Query1.SQL.Add(Format('WHERE (日付 = "%s")',
[FormatDateTime('mm"/"dd"/"yyyy', Monthcalendar1.date)]
));
Query1.Open;
--------------------------
2:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from DataDB where 日付 = :ParamDate');
Query1.ParamByName('ParamDate').AsDate := Monthcalendar1.Date;
Query1.Open;
以上2通りやってみたのですがどちらも思い通りにできました。
igy さんには文の間違いを指摘していただきご迷惑をかけました。
ありがとうございます。
ちゃん
ツイート | ![]() |