![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка 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...
и т.д.
повтор однотипных операций (собственно не совсем ошибка...), игнорирование форматирования (нет разделений между выражениями в запросе), игнорирование типов (да есть автоприведение... но не во всех же случаях), использование операций для несоответствующего типа и неиспользование параметров. в итоге полный бред вместо запроса....
> Или как сделать по другому.
а что собственно нужно сделать то?