DateTime в ADOQuery
Ошибка при передачи DateTime в SQL параметр ADOQuery.
При передаче даты в запрос через параметр FastReport преобразует его в строку (как не выставляй тип параметра в DateTime), и Sybase, соответственно, не может его принять, т.к. представление времени разное.
Как можно передать дату не прибегая к перобразованию в строку?
При передаче даты в запрос через параметр FastReport преобразует его в строку (как не выставляй тип параметра в DateTime), и Sybase, соответственно, не может его принять, т.к. представление времени разное.
Как можно передать дату не прибегая к перобразованию в строку?
Комментарии
Почему, используя TfrxADOQuery совместно с TfrxADODatabase при коннекте к "Provider=ASAProv.90", я не могу передать переменную TDateTime???
В FastReport TDateTime возвращается в формате 16.06.2006 15:00:00, а Sybase ASA 9 требует datetime в формате 2006-06-16 15:00:00.
Приходится разбирать TDateTime в строку, собирать необходимую строчку и передавать дату и время через строку.
Почему не происходит конвертация в нужный формат данных?
Это же ADO!!!
Я тоже работаю с Sybase ASA 8. И для работы с ним использую SQL Direct
http://www.sqldirect-soft.com/
Очень хорошая библиотека, правда платная, но оно того стоит.
Для нее есть и движок для FR2,FR3,FS.
Так вот там подобных проблем нет, все работает как часы.
Я думаю, либо разработчики забили на форум, ли бо сами не знают в чем проблема. И то и другое заставляет задуматься...
Суть заключается в том что сначала Value -> String -> TDateTime.
Что-то вроде
ADODataSet.Params.ParamByName("foo").Value := StrToDateTime(DateTimeToStr(DateEdit1.Date));
Если убрать функции преобразования типов, то действительно получаем ошибку несовместимости типов или неверного значения параметров.