2010-01-22 31 views
2

我們有一個滯後的VB6應用程序,它使用ODBC連接到Oracle 10g數據庫。我們正在升級到我們國有企業的11g司機,部分應用程序出現問題。 9.2驅動程序正常工作。VB6調用Oracle過程錯誤

Oracle Client 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)。

有沒有人用VB6和Oracle 10g/11g ODBC驅動程序遇到這個問題?

回答

0

是的,Oracle太挑剔。將存儲過程名稱更改爲大寫的解決方案百分之百正確。