|
#1
|
|||
|
|||
Запрос по дате
Помогите пожалуйста! нужно сделать запрос по конкретной дате из календаря, было много вариантов, но никак не получается, голова идет кругом, главное с какого по какое число задаю, работает, а вот тут тупик. Посмотрите пожалуйста, помогите!!! Очень срочно нужно. сроки поджимают
|
#2
|
|||
|
|||
Все зависит от того, как ты хранишь дату.
Если только саму дату, то можно смело использовать в запросе "равно". Если дата хранится со временем, то придется использовать 2 условия (или between). Т.е. дата должна быть больше или равна твоей дате и 00:00:00 времени и мешьше следующему дню с таким же временем. |
#3
|
|||
|
|||
Цитата:
Дата храниться без времени. Это последний этап в моей работе, Если можно подскажите пожалуйста, у меня уже мозги кипят. Не могу сообразить, как правильно написать. Если не трудно напишите пожалуйста!!!! |
#4
|
||||
|
||||
Так попробуйте:
Код:
if (RadioButton2.Checked=true) then begin DataModule3.AdoQuery2.Active := False; DataModule3.ADOQuery2.SQL.Text:='SELECT format(Data,"dd.mm.yyyy") as Data, Puti, Nasvanie_uchastka, Nom_km_n, Nom_pk_n, Nom_km_k, Nom_pk_k, Nasvanie_pribora, Nomer_pribora, F_I_O from GRAFIK where Data=:Date'; DataModule3.ADOQuery2.Parameters.ParamByName('Date').Value := DateTimePicker1.DateTime; DataModule3.ADOQuery2.Active := True; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Цитата:
Выдает ошибку синтаксиса. Пробую вот так Код:
if (RadioButton2.Checked=true) then begin DataModule3.AdoQuery2.Active:=false; DataModule3.AdoQuery2.SQL.Text:='SELECT * FROM GRAFIK WHERE (DATA= :D1) AND (DATA=:D2)'; (так тоже ругается)//DataModule3.AdoQuery2.SQL.Text:='ORDER BY Data,Puti,Nasvanie_uchastka,Nom_Km_n,Nom_pk_n,Nom_km_k,Nom_pk_k,Nasvanie_pribora,Nomer_pribora,F_I_O'; DataModule3.DataSource1.DataSet:=DataModule3.AdoQuery2; DataModule3.AdoQuery2.Active:=true; lmikle: пользуемся тегами, блин!!! Выбираю дату, выдает просто пустые столбцы |
#6
|
||||
|
||||
Поместите код в блок , а то из****овался маленько
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
Ну и как ты себе представляешь, поле может иметь 2 разных значения???
Запрос д.б. таким: Код:
SELECT * FROM GRAFIK WHERE DATA= :D1 И указывать надо только 1 параметр. Это первая ошибка. Вторая ошибка - ты часть запроса, начинающуюся с ORDER BY... присваиваешь свойству и тем самым затираешь первую часть запроса. Там должен быть вызов метода Add у свойства SQL... |
#8
|
||||
|
||||
Вы в курсе, что в дельфи есть отладчик? Поставьте точку останова в процедуре и выполняйте по шагам код, проверяя значения важных переменных.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
Я давала значение равное одному значению, было пусто, потом дала два значения, пусто.
Никак не получается. Выдает пустые столбцы. Что-то я туплю, зациклилась на этом и никак. Подскажите пожалуйста |
#10
|
|||
|
|||
Отладь сам запрос сначала, а потом "засовывай" его в Дельфи.
Так проще будет. |
#11
|
||||
|
||||
У вас запрос проще некуда.
Вот текст запроса: Код:
SQL := 'SELECT format(Data,"dd.mm.yyyy") as Data, Puti, Nasvanie_uchastka, Nom_km_n, Nom_pk_n, Nom_km_k, Nom_pk_k, Nasvanie_pribora, Nomer_pribora, F_I_O from GRAFIK'; По вашей постановке возможны 3 варианта. 1. Выдать все. Запрос неменяется. 2. Выдать за конкретную дату. Просто добавим к запросу строчку c ограничением по дате и организуем ввод параметра: Код:
SQL := SQL + ' where Data=:Date'; DataModule3.AdoQuery2.SQL.Text := SQL; Parameters.ParamByName('Date').Value := DateTimePicker1.DateTime Код:
SQL := SQL + ' where Data between :D1 and :D2; DataModule3.AdoQuery2.SQL.Text := SQL; Parameters.ParamByName('D1').Value := DateTimePicker2.DateTime; Parameters.ParamByName('D2').Value := DateTimePicker3.DateTime; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#12
|
|||
|
|||
я понимаю, что просто, но не получается. Делаю как вы сказали, но теперь ругается на SQL
|
#13
|
||||
|
||||
Короче, полный код в студию, незабудьте dfm приложить
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#14
|
|||
|
|||
Вам всю программу нужно?
|
#15
|
||||
|
||||
В идеале да.
Можете стукнуться в Аську. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |