-
Помгите пожалуйста с запросом!!!!
Form2.ADOQuery1.SQL.Add('select * from Otchet Where data='+DateTimePicker1.+'');
Дает ошибку:Число содержит синтаксическую ошибку в выражении запроса 'data=24.11.2008'
В чем может быть проблема?
-
Извините опечатка, вот запрос:
Form2.ADOQuery1.SQL.Add('select * from Otchet Where data='+DateToStr(DateTimePicker1.Date)+'');
-
> [0] Valerik © (25.11.08 10:46)
> В чем может быть проблема?
В нежелании использовать параметры в запросе.
Where data=:data
-
> )+'');
этот хвостик зачем?
-
> Дает ошибку:Число содержит синтаксическую ошибку в выражении запроса 'data=24.11.2008'
а разве нет? правильным с точки зрения любого sql сервера будет число с одной точкой между целой и дробной частью типа 'data=24.11'
используй параметры.
-
Valerik © (25.11.08 10:46)
Дата в Access записывается в диезах
data=#24.11.2008#
-
> [5] stas © (25.11.08 11:22)
А в другой СУБД в бемолях. А через параметры едят все.
-
> stas © (25.11.08 11:22) [5]
это зло!
-
Form2.ADOQuery1.Close;
Form2.ADOQuery1.SQL.Clear;
Form2.ADOQuery1.SQL.Add('select * from Otchet Where data=:D1'); Form2.ADOQuery1.Parameters.ParamByName('D1').Value:=DateTimePicker1.Date;
Form2.ADOQuery1.Open;
Попробовал через параметры. Ошибки нет, но запрос возвращается пустым.
-
значит нет ничего за эту дату
-
у тебя поди в данных дата еще и со временем сидит...
-
> у тебя поди в данных дата еще и со временем сидит...
по другому и не бывает, типа только дата в аксессе нет, и кстати DateTimePicker1.Date тоже не совсем Date...
-
есть за эту дату данные. и функцию в Access задавал, что бы ставил только дату.
И все равно пусто.
-
> есть за эту дату данные
начало и конец суток можешь определить?
BETWEEN юзай
-
> sniknik © (25.11.08 14:03) [11]
) я имею в виду, что значение времени в данных не 0 (взял да поставил значение по умолчанию на поле Date()+Time()),
> и кстати DateTimePicker1.Date тоже не совсем Date
а вот это, кстати да, упущение с моей стороны, причина скорее всего наоборотная )
Form2.ADOQuery1.Parameters.ParamByName('D1').Value:=Trunc(DateTimePicker1.Date);
-
Разобрался. Перевел дату в стринг и все заработало:
Form2.ADOQuery1.Parameters.ParamByName('D1').Value:=DateToStr(DateTimePicker1.Da te)
-
> [15] Valerik © (25.11.08 14:11)
> Перевел дату в стринг и все заработало
Успехов тебе в нелегкой борьбе.
-
> Перевел дату в стринг и все заработало:
ну это только на первый взгляд. ты просто перенес ошибку из очевидных в "плавающие" и трудно уловимые.
-
> Form2.ADOQuery1.Parameters.ParamByName('D1').Value:=DateToStr(DateTimePicker1.Da te)
вместо этого выполни к примеру вот эту пару и сравни результат
Form2.ADOQuery1.Parameters.ParamByName('D1').Value:= '24.11.2008';
и
Form2.ADOQuery1.Parameters.ParamByName('D1').Value:= '11.24.2008';
-
> вместо этого выполни к примеру вот эту пару и сравни результатForm2.
> ADOQuery1.Parameters.ParamByName('D1').Value:= '24.11.2008';
> иForm2.ADOQuery1.Parameters.ParamByName('D1').Value:= '11.
> 24.200
Результат одинаковый)))
-
> Valerik © (25.11.08 14:50) [19]
а так ?
Form2.ADOQuery1.Parameters.ParamByName('D1').Value:= '12.11.2008';
и
Form2.ADOQuery1.Parameters.ParamByName('D1').Value:= '11.12.2008';
-
> а так ?Form2.ADOQuery1.Parameters.ParamByName('D1').Value:
> = '12.11.2008';иForm2.ADOQuery1.Parameters.ParamByName('D1').
> Value:= '11.12.2008';
А в чем разница????
-
Это не разница. Это игра такая. Угадай где месяц. На какой машине.
-
> А в чем разница????
дальтоник? нет разницы (в принципе задания. есть только в цифрах > 12 и <=), а результат для разных случаев различается. и подумай что будет если ты на таких недостоверных данных будешь к примеру зарплату начислять... побьют ведь (как минимум).
-
Sergey13 © (25.11.08 11:57) [6]
qqq (25.11.08 13:10) [7]
Параметры параметрами, а синтаксис sql движка с которым работаешь надо знать.
-
> stas © (25.11.08 17:08) [24]
многое нужно знать, а еще больше нужно знать, что делать НЕ надо
даже если есть такая возможность
-
особенно для того, что бы потом не скакать по всему проекту исправляя запросы при смене СУБД
-
>Правильный$Вася (25.11.08 18:39) [25]
Palladin © (25.11.08 18:41) [26]
Я нигде и не говорил что параметры не нужно использовать.
-
> stas © (25.11.08 20:53) [27]
но ты и не говорил, что их нужно использовать
напротив, ты решительно подсовывал заведомо порочный способ
-
негодяй! ;)