Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2014, 16:14   #11
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

прочитал на форуме темы про параметрические запросы, решил переделать свой запрос:
Код:
procedure TForm7.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked=true  then  begin
 form7.ADOQuery1.Close;
 form7.ADOQuery1.SQL.Clear;
 form7.ADOQuery1.SQL.add('select * from prihod');
  form7.ADOQuery1.SQL.Add('where prihod.datа_prihod between :pdate1 and :pdate2');
 form7.ADOQuery1.Parameters.ParamByName('pdate1').Value:=DateTimePicker1.Date;
 form7.ADOQuery1.Parameters.ParamByName('pdate2').Value:=DateTimePicker2.Date;
 form7.ADOQuery1.Open;
end;
end;
Теперь когда ставишь галочку CheclBox появляется ошибка:
Project1.exe raised exception class EOLeException with message 'Несоответствие типов данных в выражении условия отбора'.

Поле Дата прихода у меня типа Дата/время. В чем ошибка?
вася радугов вне форума Ответить с цитированием
Старый 10.02.2014, 16:22   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

на первый взгляд, всё правильно.

попробуйте отрезать время (оно иногда мешает):
Код:
....
 form7.ADOQuery1.Parameters.ParamByName('pdate1').Value:= trunc(DateTimePicker1.Date);
 form7.ADOQuery1.Parameters.ParamByName('pdate2').Value:= trunc(DateTimePicker2.Date);
 form7.ADOQuery1.Open;
в DateTimePicker1 и DateTimePicker2 даты выбраны?

Если ничего не поможет, то покажите структуру вашей таблицы prihod (можно скриншотик из конструктора)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.02.2014, 16:34   #13
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

К сожалению, ничего не помогло. В DataTimepicker1,2 даты выбраны.
Изображения
Тип файла: jpg prihod.jpg (17.5 Кб, 126 просмотров)
вася радугов вне форума Ответить с цитированием
Старый 10.02.2014, 16:55   #14
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от вася радугов Посмотреть сообщение
Теперь когда ставишь галочку CheclBox появляется ошибка:
Project1.exe raised exception class EOLeException with message 'Несоответствие типов данных в выражении условия отбора'.

Поле Дата прихода у меня типа Дата/время. В чем ошибка?
Похоже, что мой пост #10 прошёл не замеченным. Дата в запросе, не воспринимается ядром СУБД, как дата. Приведите дату к нужному виду.
Streletz вне форума Ответить с цитированием
Старый 10.02.2014, 17:00   #15
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

Простите, не понимаю, к какому виду надо привести дату. В самом запросе или где?
вася радугов вне форума Ответить с цитированием
Старый 10.02.2014, 17:07   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Непосредственно trunc(DateTimePicker1.Date) присваивать не желательно. Лучше через промежуточный DateTime
Код:
var d: TDateTime;
...
d:=trunc(DateTimePicker1.Date);
form7.ADOQuery1.Parameters.ParamByName('pdate1').Value:= d;
d:=trunc(DateTimePicker2.Date);
form7.ADOQuery1.Parameters.ParamByName('pdate2').Value:= d;
Цитата:
Дата в запросе, не воспринимается ядром СУБД, как дата. Приведите дату к нужному виду
Зачем её ручками приводить? Параметризированный запрос нормально приводит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.02.2014, 17:24   #17
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от вася радугов Посмотреть сообщение
Простите, не понимаю, к какому виду надо привести дату. В самом запросе или где?
Простите, но зачем я тогда в посте #10 давал ссылку на статью?
Дата для отправки в Access должна иметь вид: #MM/DD/YYYY#, где MM-месяц, dd-день, YYYY-год.
Есть ещё альтернативный способ приведения даты, который предложил Аватар.
Так что пробуйте, дерзайте...

Последний раз редактировалось Streletz; 10.02.2014 в 17:26.
Streletz вне форума Ответить с цитированием
Старый 10.02.2014, 21:44   #18
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

спасибо огромное! теперь такой вопрос, как сделать , чтобы результат запроса выводился в DBGrid? Когда нажимаешь CheckBox, все данные из DBGrid пропадают.

Простите за назойливость, но правда не понимаю почему не отображается результат запроса в DBGrid. ADOQuery1 подключен к таблице prihod,
DataSource1.DataSet=ADOQuery1, DBGrid1.DataSource=DataSource1
когда нажимаю на checkbox, почему в DBGrid1 вообще ничего не отображается?

Последний раз редактировалось Stilet; 11.02.2014 в 09:14.
вася радугов вне форума Ответить с цитированием
Старый 11.02.2014, 03:41   #19
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

А, в БД есть данные которые соответствуют условиям отбора?
Streletz вне форума Ответить с цитированием
Старый 11.02.2014, 06:28   #20
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Я просто оставлю цитату из поста №6 здесь
Цитата:
И да, вы добавляете в строку не преобразованную в string дату, а текстовую строку вида "QuotedStr(DateToStr(DateTimePi cker 1.Date))"
Вам объясняют, что делать надо не так.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клиент-серверная база данных (Access + Delphi) alen04ka92 Фриланс 2 20.07.2012 04:57
Клиент-серверная база данных (желательно delphi и access) Selensio Фриланс 3 08.07.2012 15:02
База данных Access + Delphi Марсель21 Помощь студентам 0 11.05.2012 13:09
База данных access и delphi Fastah Помощь студентам 1 21.12.2010 16:36
База Данных. Access и Delphi skrudjmagdak Помощь студентам 2 05.01.2010 20:12