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

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

Компонент 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]

а зачем?


Наверх

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