![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Нужно организовать поиск в БД по дате покупки некоего устройства.
БД: Firebird 1.5; Пишу на Delphi 2009; в DateTimePicker.OnChange запрос: Код:
DM.ADOQuery1.Active:=false;
DM.ADOQuery1.SQL.Clear;
DM.ADOQuery1.SQL.Add('SELECT *');
DM.ADOQuery1.SQL.Add('FROM "SKLAD"');
DM.ADOQuery1.SQL.add('WHERE DATEBAY like ''' +'%'+datetostr(DateTimePicker1.Date) + '%''');
DM.ADOQuery1.Active:=true;Выдается пустой результат, хотя тестовые значения быть должны кто подскажет чем проблема? |
|
#2
|
|||
|
|||
|
Параметризованный запрос с честным сравнением:
Код:
DM.ADOQuery1.Active:=false;
DM.ADOQuery1.SQL.Clear;
DM.ADOQuery1.SQL.Add('SELECT *');
DM.ADOQuery1.SQL.Add('FROM "SKLAD"');
DM.ADOQuery1.SQL.add('WHERE DATEBAY = :D');
DM.ADOQuery1.Params.ParamByName('D').AsDateTime := DateTimePicker1.Date;
DM.ADOQuery1.Active:=true; |
|
#3
|
||||
|
||||
|
Ругается на строчку:
Код:
DM.ADOQuery1.Params.ParamByName('D').AsDateTime := DateTimePicker1.Date;Если заменить Params на Parametrs ругается на свойство AsDateTime. |
|
#4
|
|||
|
|||
|
Код:
DM.ADOQuery1.Parameters.ParamValues['D'] := DateTimePicker1.Date; |
|
#5
|
||||
|
||||
|
Не помогло, все-ровно пустой DBgrid получается без значений....
![]() |
|
#6
|
||||
|
||||
|
А DateBay у вас что текстовое? Операция Like предполагает наличие слева и справа от него текстовых операндов. Либо приводите левый операнд к текстовому формату, либо работайте с ним как с датой через = или between
|
|
#7
|
||||
|
||||
|
Все спасибо заработало, есть же умные люди....
|