Всем привет.
Я использую Codegear RadStudio 2009, язык C++, DevArt Oracle Data Access 9.0.1
У меня возникла следующая проблема, в запросе TOraQuery, вместо NULL,
почему-то передается 0. И выдает ошибку что нельзя записать 0 в поле date.
Например такой вот код:
OraConnection->qry->ParamByName("DATE")->Value = NULL;
при попытке выполнить запись в БД, выкидывает ошибку, что была попытка записать число 0, в поле с типом DATE.
Я вот думаю может нулл нужно как-то по другому присваивать?
Заранее спасибо за помощь.
Как присвоить значение NULL
-
- Сообщения: 10
- Зарегистрирован: Вт 07 май 2013 13:44
Re: Как присвоить значение NULL
Добрый день,
NULL в С++ и NULL в Oracle - различные значения, Вы не можете присваивать NULL параметру типа Date/DateTime, если вы явно укажете тип параметра, то на присвоении значения NULL такому параметру вы получите ошибку "Cannot Convert Type". Для того чтобы вставить NULL в поле, Вы можете либо вообще не задавать значение параметра, либо очищать этот параметр
NULL в С++ и NULL в Oracle - различные значения, Вы не можете присваивать NULL параметру типа Date/DateTime, если вы явно укажете тип параметра, то на присвоении значения NULL такому параметру вы получите ошибку "Cannot Convert Type". Для того чтобы вставить NULL в поле, Вы можете либо вообще не задавать значение параметра, либо очищать этот параметр
Код: Выделить всё
ParamByName("p1")->Clear();
-
- Сообщения: 10
- Зарегистрирован: Вт 07 май 2013 13:44
Re: Как присвоить значение NULL
Спасибо за исчерпывающий ответ.
Ситуация прояснилась.
Немного шире опишу проблему которая была:
дело в том, что при повторном использовании INSERT запроса,
если вообще не присваивать значение,
он использует значение которое было использовано в предыдущий раз.
Отсюда и возникла необходимость явно указывать NULL.
Еще раз большое спасибо за ответ.
Ситуация прояснилась.
Немного шире опишу проблему которая была:
дело в том, что при повторном использовании INSERT запроса,
если вообще не присваивать значение,
он использует значение которое было использовано в предыдущий раз.
Отсюда и возникла необходимость явно указывать NULL.
Еще раз большое спасибо за ответ.
Re: Как присвоить значение NULL
Добрый день,
В Вашем случае, для присвоения параметру значения NULL Вам необходимо явно очищать параметр
В Вашем случае, для присвоения параметру значения NULL Вам необходимо явно очищать параметр
Код: Выделить всё
ParamByName("DATE")->Clear();
-
- Сообщения: 10
- Зарегистрирован: Вт 07 май 2013 13:44
Re: Как присвоить значение NULL
Alexp
Спасибо большое за своевременную помощь.
Ваша информация мне действительно помогла, причем не в первый раз.
Спасибо большое за своевременную помощь.
Ваша информация мне действительно помогла, причем не в первый раз.
Re: Как присвоить значение NULL
Добрый день,
Я рад что смог помочь. Если у Вас возникнут дальнейшие вопросы по ODAC, пожалуйста пишите нам.
Я рад что смог помочь. Если у Вас возникнут дальнейшие вопросы по ODAC, пожалуйста пишите нам.