|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
Все спасибо заработало, есть же умные люди....
|