Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.04.2009, 22:20
ННС ННС вне форума
Прохожий
 
Регистрация: 30.03.2009
Сообщения: 17
Репутация: 10
По умолчанию Запрос по дате

Помогите пожалуйста! нужно сделать запрос по конкретной дате из календаря, было много вариантов, но никак не получается, голова идет кругом, главное с какого по какое число задаю, работает, а вот тут тупик. Посмотрите пожалуйста, помогите!!! Очень срочно нужно. сроки поджимают
Вложения
Тип файла: rar Запрос.rar (19.0 Кбайт, 6 просмотров)
Ответить с цитированием
  #2  
Старый 20.04.2009, 22:50
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Все зависит от того, как ты хранишь дату.
Если только саму дату, то можно смело использовать в запросе "равно".
Если дата хранится со временем, то придется использовать 2 условия (или between). Т.е. дата должна быть больше или равна твоей дате и 00:00:00 времени и мешьше следующему дню с таким же временем.
Ответить с цитированием
  #3  
Старый 21.04.2009, 19:06
ННС ННС вне форума
Прохожий
 
Регистрация: 30.03.2009
Сообщения: 17
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Все зависит от того, как ты хранишь дату.
Если только саму дату, то можно смело использовать в запросе "равно".
Если дата хранится со временем, то придется использовать 2 условия (или between). Т.е. дата должна быть больше или равна твоей дате и 00:00:00 времени и мешьше следующему дню с таким же временем.

Дата храниться без времени. Это последний этап в моей работе, Если можно подскажите пожалуйста, у меня уже мозги кипят. Не могу сообразить, как правильно написать. Если не трудно напишите пожалуйста!!!!
Ответить с цитированием
  #4  
Старый 21.04.2009, 19:43
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Так попробуйте:
Код:
 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  
Старый 21.04.2009, 19:51
ННС ННС вне форума
Прохожий
 
Регистрация: 30.03.2009
Сообщения: 17
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Так попробуйте:
Код:
 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;

Выдает ошибку синтаксиса.
Пробую вот так

Код:
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  
Старый 21.04.2009, 19:53
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Поместите код в блок , а то из****овался маленько
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 21.04.2009, 19:53
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну и как ты себе представляешь, поле может иметь 2 разных значения???
Запрос д.б. таким:

Код:
SELECT * FROM GRAFIK WHERE DATA= :D1

И указывать надо только 1 параметр. Это первая ошибка.

Вторая ошибка - ты часть запроса, начинающуюся с ORDER BY... присваиваешь свойству и тем самым затираешь первую часть запроса. Там должен быть вызов метода Add у свойства SQL...
Ответить с цитированием
  #8  
Старый 21.04.2009, 19:58
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Вы в курсе, что в дельфи есть отладчик? Поставьте точку останова в процедуре и выполняйте по шагам код, проверяя значения важных переменных.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #9  
Старый 21.04.2009, 20:09
ННС ННС вне форума
Прохожий
 
Регистрация: 30.03.2009
Сообщения: 17
Репутация: 10
По умолчанию

Я давала значение равное одному значению, было пусто, потом дала два значения, пусто.
Никак не получается. Выдает пустые столбцы. Что-то я туплю, зациклилась на этом и никак.
Подскажите пожалуйста
Ответить с цитированием
  #10  
Старый 21.04.2009, 20:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Отладь сам запрос сначала, а потом "засовывай" его в Дельфи.
Так проще будет.
Ответить с цитированием
  #11  
Старый 21.04.2009, 20:28
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

У вас запрос проще некуда.
Вот текст запроса:
Код:
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
3. Выдать за период. Почти также как с п.2 добавим к запросу строчку c ограничением по периоду и организуем ввод параметров:
Код:
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  
Старый 21.04.2009, 20:56
ННС ННС вне форума
Прохожий
 
Регистрация: 30.03.2009
Сообщения: 17
Репутация: 10
По умолчанию

я понимаю, что просто, но не получается. Делаю как вы сказали, но теперь ругается на SQL
Ответить с цитированием
  #13  
Старый 21.04.2009, 20:58
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Короче, полный код в студию, незабудьте dfm приложить
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #14  
Старый 21.04.2009, 21:04
ННС ННС вне форума
Прохожий
 
Регистрация: 30.03.2009
Сообщения: 17
Репутация: 10
По умолчанию

Вам всю программу нужно?
Ответить с цитированием
  #15  
Старый 21.04.2009, 21:08
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

В идеале да.
Можете стукнуться в Аську.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter