Не срабатывает тип DATE в запросах к Oracle
От: feanor_ka  
Дата: 27.05.05 18:15
Оценка:
Доброго времени суток
Вопрос такой: из под Delphi пытаюсь выполныить запрос к базе Oracle такого вида "update table set a='01.01.2000'". Возникает ошибка несоответствия типов данных.. Доступ через DOA. Как его можно заставить использовать стандартный формат даты?
... << RSDN@Home 1.1.4 beta 7 rev. 458>>
Re: Не срабатывает тип DATE в запросах к Oracle
От: Igor Trofimov  
Дата: 27.05.05 19:02
Оценка:
_>Вопрос такой: из под Delphi пытаюсь выполныить запрос к базе Oracle такого вида "update table set a='01.01.2000'". Возникает ошибка несоответствия типов данных.. Доступ через DOA. Как его можно заставить использовать стандартный формат даты?

1. Старйтесь всегда использовать параметризованные запросы. В частности это полностью снимает проблему различного представления литералов даты/времени в разных СУБД.

2. см. описание функции to_date в SQL Reference
Re[2]: Не срабатывает тип DATE в запросах к Oracle
От: feanor_ka  
Дата: 27.05.05 19:57
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

_>>Вопрос такой: из под Delphi пытаюсь выполныить запрос к базе Oracle такого вида "update table set a='01.01.2000'". Возникает ошибка несоответствия типов данных.. Доступ через DOA. Как его можно заставить использовать стандартный формат даты?


iT>1. Старйтесь всегда использовать параметризованные запросы. В частности это полностью снимает проблему различного представления литералов даты/времени в разных СУБД.


К сожалению запрос "update table set date=:date" с последующим SetVariable('Date'):=datepicker.Date; привел к такому же результату

iT>2. см. описание функции to_date в SQL Reference


Спасибо, поищу
... << RSDN@Home 1.1.4 beta 7 rev. 458>>
Re[3]: Не срабатывает тип DATE в запросах к Oracle
От: Sinclair Россия https://github.com/evilguest/
Дата: 28.05.05 03:31
Оценка:
Здравствуйте, feanor_ka, Вы писали:

_>К сожалению запрос "update table set date=:date" с последующим SetVariable('Date'):=datepicker.Date; привел к такому же результату

Какой еще SetVariable? Сделай Prepare и посмотри в Parameters. Кстати, ты запрос через какой класс выполняешь? TQuery?
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Не срабатывает тип DATE в запросах к Oracle
От: EXELENS Россия  
Дата: 28.05.05 17:14
Оценка:
Здравствуйте, feanor_ka, Вы писали:

_>Доброго времени суток

_>Вопрос такой: из под Delphi пытаюсь выполныить запрос к базе Oracle такого вида "update table set a='01.01.2000'". Возникает ошибка несоответствия типов данных.. Доступ через DOA. Как его можно заставить использовать стандартный формат даты?

а если так "update table set a= TO_DATE('01012000','DDMMYYYY')"
удачи
Re[4]: Не срабатывает тип DATE в запросах к Oracle
От: feanor_ka  
Дата: 29.05.05 09:59
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, feanor_ka, Вы писали:


_>>К сожалению запрос "update table set date=:date" с последующим SetVariable('Date'):=datepicker.Date; привел к такому же результату

S>Какой еще SetVariable? Сделай Prepare и посмотри в Parameters. Кстати, ты запрос через какой класс выполняешь? TQuery?

Запрос через TOracleDataSet. Там prepare нету

В общем проблема оказалась в названии он на название столбца "DATE" ругался, переименовал и все заработало.
... << RSDN@Home 1.1.4 beta 7 rev. 458>>
Re[2]: Не срабатывает тип DATE в запросах к Oracle
От: feanor_ka  
Дата: 29.05.05 09:59
Оценка:
Здравствуйте, EXELENS, Вы писали:

EXE>Здравствуйте, feanor_ka, Вы писали:


_>>Доброго времени суток

_>>Вопрос такой: из под Delphi пытаюсь выполныить запрос к базе Oracle такого вида "update table set a='01.01.2000'". Возникает ошибка несоответствия типов данных.. Доступ через DOA. Как его можно заставить использовать стандартный формат даты?

EXE>а если так "update table set a= TO_DATE('01012000','DDMMYYYY')"

EXE>удачи

Ага, спасиб, так работает, только лучше наверно 'DD.MM.YYYY', для читаемости и поле чтобы "DATE" не называлось
... << RSDN@Home 1.1.4 beta 7 rev. 458>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.