Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.09;
Скачать: CL | DM;

Вниз

Ошибка SQL запросе   Найти похожие ветки 

 
Evgeny   (2007-10-21 11:54) [0]

Помогите разобраться в SQL запросе:
procedure TForm1.BitBtn5Click(Sender: TObject);
var
 Tekvr: TDateTime;
 EndOfWeek: TDateTime;
 st2 : string; // критерий запроса
 st3 : string;
 st4 : string;
begin
 Tekvr:= Now; //
 EndOfWeek := StartOfAWeek(YearOf(Tekvr),WeekOf(Tekvr)+1);

 st2 := FormatDateTime("dd/mm/yyyy",Tekvr);
 st3 := FormatDateTime("dd/mm/yyyy",EndOfWeek);
 st4 := "Data >="+st2+"AND"+ "Data <"+ st3 ;
  Form1.ADOQuery1.Active:=False;
 Form1.ADOQuery1.SQL.Clear;
 Form1.ADOQuery1.SQL.ADD("SELECT*");
 Form1.ADOQuery1.SQL.ADD("FROM Таблица1");
 Form1.ADOQuery1.SQL.ADD ("WHERE Data LIKE """+st4+"""");

 Form1.ADOQuery1.Active:=True;
 Form1.ADOQuery1.Open;
 if form1.ADOQuery1.RecordCount > 0 then   => отсюда идет
       form1.DataSource2.DataSet := Form1.ADOQuery1;
 if form1.ADOQuery1.RecordCount > 0 then   <= сюда, потом
       PlaySound("ringin.wav",0,SND_ASYNC)
   else                                     <= сюда
       ShowMessage("По Вашему запросу ничего не найдено.");
end;
Подскажите в чем ошибка.Или как сделать по другому.


 
sniknik ©   (2007-10-21 12:11) [1]

> Подскажите в чем ошибка.
ошибок много...
первая использование ADOQuery...
вторая указание Form1 внутри класса TForm1...
и т.д.
повтор однотипных операций (собственно не совсем ошибка...), игнорирование форматирования (нет разделений между выражениями в запросе), игнорирование типов (да есть автоприведение... но не во всех же случаях), использование операций для несоответствующего типа и неиспользование параметров. в итоге полный бред вместо запроса....

> Или как сделать по другому.
а что собственно нужно сделать то?


 
Evgeny   (2007-10-21 12:51) [2]

Чтобы запрос работал.
Надо выбрать все записи за текущую неделю. Прошу помогите!


 
sniknik ©   (2007-10-21 13:06) [3]

> Надо выбрать все записи за текущую неделю.
все что для этого требуется, это
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
 with ADODataSet1 do begin
   Close;
   CommandText:= "SELECT * FROM Таблица1 WHERE Data>=:Data";
   Parameters.ParamByName("Data").Value:= StartOfTheWeek(Date());
   Open;
 end;
end;


> Прошу помогите!
вместо многочисленных призывов о помощи лучше бы один раз тип Data указал... а то х.з. может мой пример с ним работать не будет.

p.s. кстати запрос как в примере каждый раз вносить не нужно... лучше один раз в десигне (прям в компонент) и менять/задавать при открытии/переоткрытии только параметр.


 
Evgeny   (2007-10-21 13:37) [4]

Ошибок нет но и не работает. Тип Data - DateTime


 
Reindeer Moss Eater ©   (2007-10-21 14:22) [5]

Тут одно из двух. Либо работает, либо ошибки есть.
Третьего не дано


 
sniknik ©   (2007-10-21 14:48) [6]

Evgeny   (21.10.07 13:37) [4]
> Ошибок нет но и не работает. Тип Data - DateTime
ну, на нет и суда нет.

Reindeer Moss Eater ©   (21.10.07 14:22) [5]
> Третьего не дано
ну как же, а чудо? они же сплошь и рядом, чудеса эти...


 
Германн ©   (2007-10-22 01:43) [7]


> ну как же, а чудо? они же сплошь и рядом, чудеса эти...

И они всё чудесатее и чудесатее :)



Страницы: 1 вся ветка

Текущий архив: 2008.03.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
15-1201765184
Ega23
2008-01-31 10:39
2008.03.09
Дурной вопрос про QueryAnalyzer


15-1202116512
Dmitry S
2008-02-04 12:15
2008.03.09
Самый "дешевый" способ загрузить картинку PNG?


15-1201900320
ProgRAMmer Dimonych
2008-02-02 00:12
2008.03.09
Подскажите, плз, направление поиска


6-1181809096
DVM
2007-06-14 12:18
2008.03.09
Неблокирующий Connect() и недоступный узел.


8-1176853126
Adic
2007-04-18 03:38
2008.03.09
Быстрое определение цвета