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

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

Сравнение дат [D7, MSAccess]


Страницы:   1 2

xroot ©   (2005-06-05 17:22:00) 

Я пытаюсь вытаскивать данные таблицы с датой меньшей сегодняшней с помощью TQuery, но вылетает ошибка. База Microsoft Access, исх. поле имеет формат Дата/Время.
Напишите простейший пример.


sniknik   (2005-06-05 19:58:00) [21]

смысл в параметре есть, и если задавать его правильно то ошибок не будет. и вообще чтобы не задумываться и на нарываться на трудноуловимые глюки, даты, числа с плавающими запятыми и строки, всегда лучше задавать параметрами.
 //SortDate := DateTostr(Date); лишнее
 QReestr.SQL.Add('AND (Д_отгрузки ' + Eq + ' :PD)');
 QReestr.ParamByName('PD').AsDateTime:= Date();
вот так должно работать верно...

и еще одно из показанного кода > 10: Eq := '='; равно в запросе может не работать смотря как в базе дата хранится "чистая" или со временем.
и еще (не глюк) посмотри хелп по TRadioGroup, не нужно будет циклов странных писать...


Zacho   (2005-06-05 19:06:00) [22]

xroot   (05.06.05 17:37) [2]

Лень, разбираться в твоём коде, но просмотрев "по-диагонали" скажу:

1. Если формируешь запрос динамически, то зачем используешь параметры ? Смысла в этом нет никакого.
2. "Вот так работает, но не верно." - Как именно "не верно" ? Опиши подробнее.
3. Приведи сообщение об ошибке и компоненты доступа.
4. Приведи запрос целиком, а не только его окончание.

P.S. У тебя проблемы с клавиатурой, или просто думаешь что "4" вместо "ч" это круто ???


xroot   (2005-06-05 17:37:00) [23]

Это 4асть кода, в которой к уже имеющемуся запросу с условием (это 4асть запроса работает нормально) добавляется условие отбора по дате.
Я впервые делаю такое, поэтому, видимо, это полный бред.

for i := 7 to 11 do if (FindComponent('TeThemeRadioButton'+ IntToStr(i)) as TTeThemeRadioButton).Checked then Cap := i;
case Cap of
 8: Eq := '<';
 9: Eq := '>';
 10: Eq := '=';
 11: Eq := '<=';
end;
if Cap > 7 then
begin
 SortDate := DateTostr(Date);
 QReestr.SQL.Add('AND (Д_отгрузки ' + Eq + ' :PD)');
 QReestr.ParamByName('PD').AsString  := SortDate;
end;
Вот так работает, но не верно.


Anatoly Podgoretsky   (2005-06-05 17:30:00) [24]

А может быть ты сначала скажешь что за обика и приведешь свой код?


Страницы:   1 2

Наверх

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