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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.05.2013, 19:22
J0ker00 J0ker00 вне форума
Прохожий
 
Регистрация: 25.04.2013
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Ошибка в запросе

Хотел сделать поиск по дате с помощью запроса sql.
Код:
procedure TForm8.BitBtn1Click(Sender: TObject);
begin
ADOQuery1.active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select  Заказ_робіт.Дата, Перелік_робіт.код_заказа, Перелік_робіт.Назва, Перелік_робіт.Вартість_за_1, '+
' Заказ_робіт.Количество_заказов, Заказ_робіт.Оплачено, [Вартість_за_1]*[Количество_заказов] AS Стоимость'+
' FROM  Заказ_робіт INNER JOIN Перелік_робіт ON Заказ_робіт.Код_заказа = Перелік_робіт.код_заказа'+
' WHERE Заказ_робіт.Дата= '+ d);
ADOQuery1.Active:=True;
end;
Проблема возникал в том что при вводе даты в формате 22.05.2013 выдает ошибку синтаксиса, а при вводе даты в формате 22/05/2013 в dbgrid не отображаются нужные данные. Переменную ввожу с едита.
Ответить с цитированием
  #2  
Старый 22.05.2013, 21:12
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
procedure TForm8.BitBtn1Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Text := 'SELECT  Заказ_робіт.Дата, Перелік_робіт.код_заказа, Перелік_робіт.Назва, Перелік_робіт.Вартість_за_1, '
    + ' Заказ_робіт.Количество_заказов, Заказ_робіт.Оплачено, [Вартість_за_1]*[Количество_заказов] AS Стоимость'
    + ' FROM  Заказ_робіт'
    + ' INNER JOIN Перелік_робіт ON Заказ_робіт.Код_заказа = Перелік_робіт.код_заказа'
    + ' WHERE Заказ_робіт.Дата = :d';
  ADOQuery1.Parameters.ParamByName('d').Value := d;
  ADOQuery1.Open;
end;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
J0ker00 (23.05.2013)
  #3  
Старый 23.05.2013, 08:01
J0ker00 J0ker00 вне форума
Прохожий
 
Регистрация: 25.04.2013
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо но проблема все равно осталась. В dbgrid не отображаются искомые данные
Ответить с цитированием
  #4  
Старый 23.05.2013, 09:59
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

ну значит они (даные) не попадают под указанное условие отбора.
поиск по датам, как правило, предпочитают искать по диапазону дат
Код:
    + ' WHERE Заказ_робіт.Дата = BETWEEN :d1 AND :d2';
  ADOQuery1.Parameters.ParamByName('d1').Value := DateFrom;
  ADOQuery1.Parameters.ParamByName('d2').Value := DateTo;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter