Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];

Вниз

параметр 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.044 c
15-1218105060
Пробежал...
2008-08-07 14:31
2008.09.28
Нет отличия INADDR_NONE от INADDR_BROADCAST ;(


2-1219253960
Евгений Р.
2008-08-20 21:39
2008.09.28
как восстановить окно messages?


15-1217962116
No_Dead(w)
2008-08-05 22:48
2008.09.28
нет ли стандартной функции?(пхп)


15-1217598681
Dmitry S
2008-08-01 17:51
2008.09.28
Несколько рабочий столов


8-1186690843
Spok
2007-08-10 00:20
2008.09.28
как зациклить MediaPlayer?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский