2010-01-22 2 views
2

У нас есть приложение VB6 с лагией, которое использует ODBC-соединение с Oracle 10g DB. Мы обновляем до 11 г драйверов на нашем SOE, и у некоторых приложений есть проблемы. Прекрасно работает с драйвером 9.2.VB6 call Oracle procedure error

Клиент Oracle 10g/11g не любит звонки в нижнем регистре. Это очевидно в том, что успешные вызовы находятся в верхнем регистре, а неудавшиеся вызовы - в нижнем регистре. Дальнейшие тесты показали, что строки кода, такие как:

Set Qry = grdoEnterprise.CreateQuery("", " { CALL ep_admin_revoke_role(?,?,?,?) } ") 

не удалось ... но удалось, когда изменен

Set Qry = grdoEnterprise.CreateQuery("", " { CALL EP_ADMIN_REVOKE_ROLE(?,?,?,?) } ") 

сама ошибка не выдается, пока запрос не будет выполнен. Однако при отладке отказ может быть обнаружен на этапе CreateQuery(), потому что в результате объекта rdoQuery есть 0 параметров (тогда как в этом случае должно быть больше 0 - 4).

Неужели кто-нибудь сталкивается с этой проблемой с драйверами ODBC VB6 и Oracle 10g/11g?

ответ

0

Да, Oracle слишком придирчива. Ваше решение изменить имя хранимой процедуры на верхний регистр на сто процентов правильное.

Смежные вопросы