Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.28;
Скачать: CL | DM;

Вниз

параметр SQL-запроса в ADOQuery   Найти похожие ветки 

 
kopernik21187 ©   (2008-08-14 11:20) [0]

Проблема в следующем!
Есть ADOTable , есть ADOQuery и есть DateTimePicker1 и DateTimePicker2 ...нужно путем
SQL-запроса вывести из таблицы ADOTable все строки где значение поля Дата0 лежит в интервале DateTimePicker1.Date и DateTimePicker2.Date

вот текст который забивается в SQL у ADOQuery:
select *
from Главная
where Дата0 > :Tann and Дата0 < :Tann1

далее лезу в свойство Parameters нахожу :Tann и :Tann1 пытаюсь ему в DataType
поставить ftDate,но почему-то Delphi сделать этого не дает и ставит
за место этого ftDateTime.

Вопрос может показаться глупым: почему Delphi не дает поставить параметрам :Tann и :Tann тип ftDate а ставит за место этого ftDateTime,а после выполнения
запроса вообще ftFixedChar?

далее обработчик кнопки делаю таким то выдается ошибка:
"Data type mistmach in criteria exppression"
procedure TForm1.Button1Click(Sender: TObject);
begin
DataModule1.ADOQuery.active:=false;
DataModule1.ADOQuery.parameters.parabyname("tann") .value:=
DateTimePicker1.Date;
DataModule1.ADOQuery.parameters.parabyname("tann1" ).value:=
DateTimePicker2.Date;
DataModule1.ADOQuery.active:=true;
FindResultForm.ShowModal;
end;

если такой
procedure TForm1.Button1Click(Sender: TObject);
begin
DataModule1.ADOQuery.active:=false;
DataModule1.ADOQuery.parameters.parabyname("tann") .value:=
DateTimePicker1.DateTIME;
DataModule1.ADOQuery.parameters.parabyname("tann1" ).value:=
DateTimePicker2.DateTIME;
DataModule1.ADOQuery.active:=true;
FindResultForm.ShowModal;
end;
то все нормально но запрос выдает не то что нужно

пробовал и так
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin

    s:="select * from Aeaaiay where Aaoa > :Dann";
   DataModule2.ADOQuery1.Active:=false;
   DataModule2.ADOQuery1.SQL.Clear;
   DataModule2.ADOQuery1.SQL.Add(s);
   DataModule2.ADOQuery1.Parameters.ParamByName("Dann").Value:=
    DateTimePicker1.Date;
   // DataModule2.ADOQuery1.Parameters.ParamByName("Dann1").Value:=
    //DateTimePicker2.Date;
   DataModule2.ADOQuery1.Active:=true;
   ResultZapros.ShowModal;
  //  s:=datetostr
end;
но опять "Data type mistmach in criteria exppression"

делал все в Delphi 6.0
база создана в MS Access 2003

конечно проблема может быть надумана,но тем не менее заранее спасибо всем кто ответит или подскажет как можно сделать по другому тоже самое.


 
Vlad Oshin ©   (2008-08-14 12:05) [1]

можно узнать формат даты на сервере и преобразовать свой к такому же, передавать как строку...

или установить формат даты для сессии на время запроса как удобнее и выполнить..но тут не скажу, не знаю MS Access


 
MsGuns ©   (2008-08-14 15:21) [2]

>вот текст который забивается в SQL у ADOQuery:
>where Дата0 > :Tann and Дата0 < :Tann1

Для этих целец "кузявее" BETWEEN

>далее лезу в свойство Parameters нахожу

Не надо туда вообще лазить

>Вопрос может показаться глупым: почему Delphi не дает поставить параметрам :Tann и :Tann >тип ftDate а ставит за место этого ftDateTime

Потому что дата - это частный случай даты-время. Если нужно взять инервал между двумя датами,
то надо в качестве параметров подставлять время 00:00 даты "с" и время 23:59 даты "по", используя имеющиеся в делфи функции DecodeDateTime и EncodeDateTime


 
kopernik21187 ©   (2008-08-18 13:22) [3]

Все в порядке!проблема решена....я просто забыл подключить модуль DB



Страницы: 1 вся ветка

Текущий архив: 2008.09.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
2-1218734987
Dr.Andrew
2008-08-14 21:29
2008.09.28
Как запретить/разрешить ввод от клавиатуры любых символов ?


15-1217788910
Jimmy
2008-08-03 22:41
2008.09.28
Про доллар


3-1206449697
vvv_spb
2008-03-25 15:54
2008.09.28
кто из пользователей использует таблицу


2-1218698459
kopernik21187
2008-08-14 11:20
2008.09.28
параметр SQL-запроса в ADOQuery


15-1217784260
Украинец
2008-08-03 21:24
2008.09.28
Адаптер COM-порта для Notebook рабьотающий под DOS