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

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

Выбор с помощью TQuery из базы Access [D6, Paradox, Access]


Lola ©   (2002-08-19 17:16:00) 

Строку SQL формирую в программе, значения беру из TDateEdit. Результирующая строка имеет вид SELECT ... FROM Reg Reg WHERE DateDoc="18.08.2002". В результате вылетает с ошибкой Data type mismatch in criteria expression. Примечательно то, что на Paradox-е этот код проходит без ошибок. Вопрос: в чем ошибка?


Lola   (2002-08-19 18:33:00) [1]


> Mike Kouzmine (19.08.02 17:21)
Такой формат тоже пробовала, ругается на синтаксическую ошибку.
Попробую использовать параметры. Особо спасибо koks © за DateSerial. Я о ней не знала.


koks   (2002-08-19 17:36:00) [2]

Да, Access очччень не привиредлив в отношении дат.
В свое время долго бился над этой проблемой...
Вот решение, может не самое красивое, но стопудовое (но только в случае Access (в моем случае это был Access 200) - а и только в случае подключения через ADO)

твоя дата - MyDate: TDateTime

var
MyDate: TDateTime;
AYear, AMonth, ADay: integer;
begin
DecodeDate(MyDate, AYear, AMonth, ADay);
Query.Close;
Query.Params.ParamByName("Year").Value := AYear;
Query.Params.ParamByName("Month").Value := AMonth;
Query.Params.ParamByName("Day").Value := ADat;
Query.Open;
end;

Query.SQL:

SELECT F1, F2, F3
FROM MyTable
WHERE DateField = DateSeria(:Year, :Month, :Day);

DateSerial - это функция VBA Access, которая возвращает корркетную для Access дату по трем числамЖ год, месяц, день...
Если ты подключаешься через ADO, а ан в свою очередь через Jet - то у тебя появляется доступ к этим функциям...







Mike Kouzmine   (2002-08-19 17:21:00) [3]

Возможно надо "#18/08/2002#" или что-то в этом роде.
Но, вообще, если работаю с Эксесом, то все запросы пишу в нем, а использую TADOStroredProc.


Reindeer Moss Eater   (2002-08-19 17:20:00) [4]

Ошибка в том, что "Data type mismatch in criteria expression"
Используй параметрический запрос


Наверх

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