Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка SQL запросе [D7, Access]


Evgeny ©   (2007-10-21 11:54:00) 

Помогите разобраться в 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;
Подскажите в чем ошибка.Или как сделать по другому.


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


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

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


sniknik   (2007-10-21 14:48:00) [2]

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

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


Reindeer Moss Eater   (2007-10-21 14:22:00) [3]

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


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

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


sniknik   (2007-10-21 13:06:00) [5]

> Надо выбрать все записи за текущую неделю.
все что для этого требуется, это
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 12:51:00) [6]

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


sniknik   (2007-10-21 12:11:00) [7]

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо