Форум: "Базы";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
ВнизОшибка 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c