I have a vb6 - RDO code that works ok with Oracle8, recently there was an upgrade to Oracle 10g enterprise. Now I get the error 40041 -> Object Collection: Couldn't find item indicated by text.
1110 lstrSQL = "{call Pyramid.Load_Tables(?, ?, 0)}"
1120 Set lrdoQ = vConexionDatos.MiDataBase.CreateQuery("ProcessTables", lstrSQL)
1130 lrdoQ.rdoParameters(0).Direction = rdParamInput
1140 lrdoQ.rdoParameters(0).Type = rdTypeDATE
1150 lrdoQ.rdoParameters(0).value = lFromDate
1160 lrdoQ.rdoParameters(1).Direction = rdParamInput
1170 lrdoQ.rdoParameters(1).Type = rdTypeDATE
1180 lrdoQ.rdoParameters(1).value = lToDate
1210 lrdoQ.Execute
1230 lrdoQ.Close
the error occurs in the line 1130
Any idea?
Software/Hardware used:
ASKED:
December 5, 2008 8:20 PM
UPDATED:
December 11, 2008 2:16 PM
Yes, I supose 10g is more strict with something 8 isn´t. Naming, parameters?
Hmmm, not sure about that.
That error message usually fires when one is referring to parameters by name (“Couldn’t find item indicated by text“), but your code is not doing that, but referring to them by position.
Have you tried something like the following ?
1110 lstrSQL = “{call Pyramid.Load_Tables(?, ?, ?)}”
1120 Set lrdoQ = vConexionDatos.MiDataBase.CreateQuery(“ProcessTables”, lstrSQL)
1130 lrdoQ.rdoParameters(0).Direction = rdParamInput
1140 lrdoQ.rdoParameters(0).Type = rdTypeDATE
1150 lrdoQ.rdoParameters(0).value = lFromDate
1160 lrdoQ.rdoParameters(1).Direction = rdParamInput
1170 lrdoQ.rdoParameters(1).Type = rdTypeDATE
1180 lrdoQ.rdoParameters(1).value = lToDate
1160 lrdoQ.rdoParameters(2).Direction = rdParamInput
1170 lrdoQ.rdoParameters(2).Type = rdTypeINTEGER
1180 lrdoQ.rdoParameters(2).value = 0
1210 lrdoQ.Execute
1230 lrdoQ.Close
Doesn’t work, for 10g what should be the full text (schema.user.package.procedure ¿?) to call a procedure in a package ??
thank you
It should be schema.package.procedure
No way, I wil try without parameters