VB6 call Oracle procedure error
We have a lagacy VB6 app that uses an ODBC connection to a Oracle 10g DB. We are upgrading to a 11g drivers on our SOE and parts of the app have issues. Works fine with a 9.2 driver.
Oracle Client 10g/11g does not like lower-case calls. This is evident in the fact that the calls that succeed are in upper case and the calls that failed are in lower case. Further tests showed that lines of code such as:
Set Qry = grdoEnterprise.CreateQuery("", " { CALL ep_admin_revoke_role( ?,?,?,? ) } ")
failed... but succeeded when changed to
Set Qry = grdoEnterprise.CreateQuery("", " { CALL EP_ADMIN_REVOKE_ROLE( ?,?,?,? ) } ")
The error itself isn't thrown until the query is executed. However, while debugg开发者_高级运维ing, failure can be detected at the CreateQuery() stage because the resulting rdoQuery object has 0 parameters (whereas it should have more than 0--in this case, 4).
Has anyone encounter this problem with VB6 and Oracle 10g/11g ODBC drivers?
Yes, Oracle is way too picky. Your solution to change the stored procedure name to upper case is one hundred percent correct.
精彩评论