Доброго времени суток!!!
всплыла потребность передать в хранимую процедуру (т.е. параметр DBPARAMIO_INPUT) значение NULL.
следуя указаниям букваря использовал макрос COLUMN_ENTRY_STATUS(2, m_param1,m_st_param1)
перед открытием честно присвоил m_st_param1 = DBSTATUS_S_ISNULL; (из MSDN — The value sent to the provider is NULL. The provider ignores the contents of the value and length parts of the consumer's buffer.)
процедурка тестовая — она просто возвращает 0 если переданный параметр NULL, иначе 1.
так вот — она все время возвращвет 1, т.е. NULL в неё не приходит...

как быть?
просто в реальной базе это _очень_ важно — это признак создать новую запись или редактировать старую...
да еще параметр там хитрый — INPUT_OUTPUT, сможет ли OLEDB провайдер для oracle это переварить? или искать обходные пути...
P.S. в обратную сторону (т.е. при получении данных) работает без проблем — проверяю статус на DBSTATUS_S_ISNULL и если таковой имеется то там именно NULL...
Спасибо за внимание.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Здравствуйте, podaa, Вы писали:
КД>А через ADO проверял? Работает?
через ADO не пробовал... так логично написано как это сделать в OLEDB... надо наверное посмотреть внутрях классов оберток — а делает ли чего OLEDB когда NULL пытаюсь передать. Может прояснится ситуация...