![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сравнение дат [D7, MSAccess]
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]А может быть ты сначала скажешь что за обика и приведешь свой код?