Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 38
1

Запросы к базам данных. Delphi

07.11.2014, 18:27. Показов 1086. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача:
Создать однотабличный запрос для просмотра всех сведений о договорах, дата которых находится в заданном временном интервале. В запросе применить условие BETWEEN. Интервал дат считывать с Edit-ов.

Код:
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button3Click(Sender: TObject);
var
d1, d2:TDate;
begin
d1:=StrToDate(Edit2.Text);
d2:=StrToDate(Edit3.Text);
 
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM Договоры WHERE Дата BETWEEN "d1" AND "d2" ');
ADOQuery1.Active:=True;

Выдает ошибку 'Несоответствие типов данных в выражении условия отбора'.

Подскажите как правильно сделать.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2014, 18:27
Ответы с готовыми решениями:

Нужен совет по базам данных в Delphi
Здравствуйте, мне нужна помощь людей у которых есть опыт работы в Delphi, а в частность опыт в...

Постановка задачи по Delphi и базам данных
Первый раз пишу курсовую. Попал к преподавателю, которые дает полную свободу выбора. Решил заняться...

Шаблоны проектирования (design patterns) на Delphi применительно к базам данных
Всем привет Недавно стал изучать шаблоны проектирования применительно к разработке клиентов баз...

Как динамически менять путь к базам данных в query. Delphi.
Здравствуйте. Есть вопрос. У меня есть несколько таблиц. И каждая лежит в разных папках. Как мне...

3
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
07.11.2014, 18:37 2
Цитата Сообщение от Hugoboss33 Посмотреть сообщение
Подскажите как правильно сделать
Правильно - сделать через параметры.
1
61 / 51 / 25
Регистрация: 17.12.2013
Сообщений: 242
08.11.2014, 05:36 3
Лучший ответ Сообщение было отмечено Hugoboss33 как решение

Решение

1) Каждый SQL запрос оканчивается знаком ';'
2) ты в запросе передаешь не значение переменных d1 и d2, а строки равные "d1" и "d2"

FIL сказал тебе истину, через параметры передавать - это правильно. Но если тебе по каким-то причинам так делать нельзя или неохота, то пробуй сделать так:
Delphi
1
ADOQuery1.SQL.Add('SELECT * FROM Договоры WHERE Дата BETWEEN ' + DateToStr(d1) + ' AND ' + DateToStr(d2) + ';');
Добавлено через 11 минут
Кстати, я вижу где ты подключаешься к базе:
Delphi
1
ADOQuery1.Active:=True;
а вот где ты запускаешь выполнение запроса не вижу.

И еще! Если это работа с MS SQL или с MS Access то у тебя остается ТОЛЬКО вариант с параметрами:
Delphi
1
2
3
4
5
6
ADOQuery1.Active:=True;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM Договоры WHERE Дата BETWEEN :pD1 AND :pD2;');
ADOQuery1.Parameters.ParamByName('pD1').Value := d1;
ADOQuery1.Parameters.ParamByName('pD2').Value := d2;
ADOQuery1.ExecSQL;
По другому работать с датами не будет.
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 38
08.11.2014, 16:33  [ТС] 4
Спасибо большое
0
08.11.2014, 16:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2014, 16:33
Помогаю со студенческими работами здесь

Запросы к разным базам
Можно ли в делфи реализовать несколько разных запросов из главной базы access к нескольким...

Запросы к базам данных
Я совсем новичёк в веб-программировании так что прошу сильно не ругать! к базе данных...

Запросы к базам данных с конкатенацией колонок
Необходимо составить запрос,который выводит количество заказов(OrderID таблица Orders),сделанных...

Просчитать запросы по разным базам и объединить их
Здравствуйте у меня такой вопрос... Есть один запрос который надо прогнать по разным базам(по...

Как объединить запросы к разным базам?
То есть из одной базы делаю одну выборку, из другой -другую. Их надо объединить и...

Нужно доделать базу. Групповые запросы и запросы на изменение данных
Есть база, нужно доделать кое что Групповые запросы: 1) С использование функции count 2) С...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru