![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компонент Query
alex810 © (2006-11-27 09:39:00)Всем доброе утро. У меня вопрос.
При создании запроса
DataModule6.Query2.SQL.text:='Select * from \Diplom\Bases\Pokaz\Shetch1\Moshn.db where data between ''1.'+
IntToStr(Form13.ComboBox1.ItemIndex+1)+'.2007 ''and '''+IntToStr(days)+'.'+
IntToStr(Form13.ComboBox1.ItemIndex+1)+'.2007''';
в DataModule6.Query2.SQL.text записывается запрос DataModule6.Query2.SQL.text:='Select * from \Diplom\Bases\Pokaz\Shetch1\Moshn.db where data between
'1.11.2007 ' and '1.11.2007'#$D#$A
как мне избавиться от #$D#$A
Desdechado (2006-11-27 11:25:00) [1]еще один любитель граблей или садист над пользователями
ПАРАМЕТРЫ!!!
alex810 (2006-11-27 09:59:00) [2]Извените за беспокойство я немного протупил. Не тот год поставил. За 2007 не записей.
ЮЮ (2006-11-27 09:59:00) [3]where data not between
where not data between
Думаешь можешь ставить как тебе укодно, а не так ка положено по синтаксису?
Если один вариан работае, а другой нет, почему "Почему?", а не использование работающей конструкции?
Kostafey (2006-11-27 09:57:00) [4]> [5] alex810 © (27.11.06 09:52)
Лучше не мучайся с Form13.ComboBox1.ItemIndex+1 и т.п. а используй TDateTimePicker
Kostafey (2006-11-27 09:54:00) [5]> StrToDate('1.11.06');
Пока помидорами не закидали:
function EncodeDate(Year, Month, Day: Word): TDateTime;
или сразу присваивать фзначение формата Date/DateTime
ЮЮ (2006-11-27 09:54:00) [6]
> Я думаю из-за этого.
>
Зря так думаешь. Лучше ошибку переведи..
З.Ы. пробел после 7 в '1.11.2007 ' лишней, а перед 1 не хватает 0.
запрос, оаботающий с датами должен выглядеть так:
Select * <table name> where data between :DateFrom and :DateTo
Перед открытием заполнить параметры типа TDate[Time]
alex810 (2006-11-27 09:52:00) [7]Да наверно не из-за этого но почему нет данных при запросе
DataModule6.Query2.SQL.text:='Select * from \Diplom\Bases\Pokaz\Shetch1\Moshn.db where data not between ''1.11.2007'' and ''30.11.2007''';
DataModule6.Query2.SQL.text:='Select * from \Diplom\Bases\Pokaz\Shetch1\Moshn.db where not data between ''1.'+
IntToStr(Form13.ComboBox1.ItemIndex+1)+'.2007 ''and '''+IntToStr(days)+'.'+
IntToStr(Form13.ComboBox1.ItemIndex+1)+'.2007''';
работает
MsGuns (2006-11-27 09:50:00) [8]>alex810 © (27.11.06 09:45) [2]
>У меня этот запрос не получается. Я думаю из-за этого.
"Не получается" из-за неправильного использования дат в запросе
Попробуйте через параметры:
... BETWEEN :d1 AND :d2...
ParamByName('d1').AsDate := StrToDate('1.11.06');
ParamByName('d2').AsDate := StrToDate('30.11.06');
Palladin (2006-11-27 09:49:00) [9]Нет, врядли из-за этого, очень маловероятно. Скорее из-за формата записи дат.
alex810 (2006-11-27 09:45:00) [10]У меня этот запрос не получается. Я думаю из-за этого.
Palladin (2006-11-27 09:43:00) [11]а зачем?