У нас есть запаздывающее приложение VB6, которое использует ODBC-соединение с БД Oracle 10g. Мы обновляем драйверы 11g на нашем SOE, и у некоторых частей приложения есть проблемы. Работает нормально с драйвером 9.2.
Клиент 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?