| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > update поля с датой типа TDateTime в Access |
| Автор: vinvin 29.9.2007, 22:21 | ||
Я хочу обновить поле в базе Access типа Datetime. Вместо обновления записывается пустая дата. Если просто в коде прописать функцию как в закоментированном месте, то все нормально - пишет текущую дату. Как быть, ведь мне нужно писать в поле не текущую дату, а вычисленную.
Кстати, я читал ответ Vita, когда он отвечал про SQL сервер. Там параметр тоже не хотел парситься. Но здесь-то я ничего не парсю, т.е. никаких преобразований из текста - гольная дата и на тебе. Может это ошибка ADO? |
| Автор: ALeXandrK 29.9.2007, 22:47 | ||
Старайся не пользоваться компонентом TADOQuery. Он был придуман только, чтобы легко могли перейти с TQuery... Все действия лучше делать с помощью TADOCommand, TADOStoredProc, TADODataSet. Познакомься с ними поближе и поймешь, что многие действия сильно упростяться |
| Автор: vinvin 29.9.2007, 22:50 | ||||
| Спасибо, попробую. Попробовал-пошло. Только там ParseSQL(SQL.Text). Но почему не работал мой код? То есть на поверку есть два кода:
и другой
Первый вариант должен быть более надежным. Там все явно передается. Второй вариант зависит от надежности кода распознавания. И по сути делает то же самое, что и первый код. Но он почему-то не работает первый вариант? Я посмотрел текст ParseSQL. Там просто добавляется параметер методом AddParameter и присваивается ему имя. Не задается ни тип, ни направление. По умолчанию направление получает tdInput а тип ftUnknown. Я попробывал поступить так же, т.е. не задавать тип, а направление задать в tdInput. результат тот же. ВНИМАНИЕ!!! Выяснил. Оказывается не работает строка Value := Now; То есть явный косяк класса TParameter. Работает только Parameters.ParamByName('d1').Value:=Now; |
| Автор: ALeXandrK 29.9.2007, 22:56 |
| Посмотри еще раз на код, я его изменил. |
| Автор: vinvin 30.9.2007, 00:47 |
| Спасибо еще раз. Заменил Query на Command. Постараюсь вообще избавиться от Query. Ведь для ADO действительно "родными" классами как раз являются DataSet, Command и StoredProc. |