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

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

SQL запрос [D7, Access]


Страницы:   1 2 3

Valerik ©   (2008-11-25 10:46:00) 

Помгите пожалуйста с запросом!!!!
Form2.ADOQuery1.SQL.Add('select * from Otchet Where data='+DateTimePicker1.+'');

Дает ошибку:Число содержит синтаксическую ошибку в выражении запроса 'data=24.11.2008'

В чем может быть проблема?


Palladin   (2008-11-25 15:39:00) [21]

Это не разница. Это игра такая. Угадай где месяц. На какой машине.


Valerik   (2008-11-25 15:20:00) [22]


> а так ?Form2.ADOQuery1.Parameters.ParamByName('D1').Value:
> = '12.11.2008';иForm2.ADOQuery1.Parameters.ParamByName('D1').
> Value:= '11.12.2008';

А в чем разница????


Palladin   (2008-11-25 15:03:00) [23]


> 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';


Valerik   (2008-11-25 14:50:00) [24]


> вместо этого выполни к примеру вот эту пару и сравни результатForm2.
> ADOQuery1.Parameters.ParamByName('D1').Value:= '24.11.2008';
> иForm2.ADOQuery1.Parameters.ParamByName('D1').Value:= '11.
> 24.200


Результат одинаковый)))


sniknik   (2008-11-25 14:23:00) [25]

> 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';


sniknik   (2008-11-25 14:19:00) [26]

> Перевел дату в стринг и все заработало:
ну это только на первый взгляд. ты просто перенес ошибку из очевидных в "плавающие" и трудно уловимые.


Sergey13   (2008-11-25 14:17:00) [27]

> [15] Valerik ©   (25.11.08 14:11)
> Перевел дату в стринг и все заработало

Успехов тебе в нелегкой борьбе.


Valerik   (2008-11-25 14:11:00) [28]

Разобрался. Перевел дату в стринг и все заработало:
Form2.ADOQuery1.Parameters.ParamByName('D1').Value:=DateToStr(DateTimePicker1.Da te)


Palladin   (2008-11-25 14:11:00) [29]


> sniknik ©   (25.11.08 14:03) [11]

) я имею в виду, что значение времени в данных не 0 (взял да поставил значение по умолчанию на поле Date()+Time()),


> и кстати DateTimePicker1.Date тоже не совсем Date

а вот это, кстати да, упущение с моей стороны, причина скорее всего наоборотная )

Form2.ADOQuery1.Parameters.ParamByName('D1').Value:= Trunc(DateTimePicker1.Date );


Правильный$Вася   (2008-11-25 14:09:00) [30]


> есть за эту дату данные

начало и конец суток можешь определить?
BETWEEN юзай


Valerik   (2008-11-25 14:08:00) [31]

есть за эту дату данные. и функцию в Access задавал, что бы ставил только дату.
И все равно пусто.


sniknik   (2008-11-25 14:03:00) [32]

> у тебя поди в данных дата еще и со временем сидит...
по другому и не бывает, типа только дата в аксессе нет, и кстати DateTimePicker1.Date тоже не совсем Date...


Palladin   (2008-11-25 13:45:00) [33]

у тебя поди в данных дата еще и со временем сидит...


Palladin   (2008-11-25 13:44:00) [34]

значит нет ничего за эту дату


Valerik   (2008-11-25 13:35:00) [35]

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;

Попробовал через параметры. Ошибки нет, но запрос возвращается пустым.


qqq   (2008-11-25 13:10:00) [36]


> stas ©   (25.11.08 11:22) [5]

это зло!


Sergey13   (2008-11-25 11:57:00) [37]

> [5] stas ©   (25.11.08 11:22)

А в другой СУБД в бемолях. А через параметры едят все.


stas   (2008-11-25 11:22:00) [38]

Valerik ©   (25.11.08 10:46)
Дата в Access записывается в диезах
data=#24.11.2008#


sniknik   (2008-11-25 10:55:00) [39]

> Дает ошибку:Число содержит синтаксическую ошибку в выражении запроса 'data=24.11.2008'
а разве нет? правильным с точки зрения любого sql сервера будет число с одной точкой между целой и дробной частью типа 'data=24.11'

используй параметры.


qqq   (2008-11-25 10:53:00) [40]


> )+'');

этот хвостик зачем?


Страницы:   1 2 3

Наверх

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