I've searched Google for hours and haven't found a clear answer so decided to prompt a post in hopes of finding a better result. I've got some wrapper code that calls the Ent. Library DAAB for Oracle. Essentially I pass in the Stored Proc name, data access type (SQL or Proc), and database type (Oracle, SQL, DB2). Based on which items get passed it calls ends up calling ExecuteScalar(dbCommandWrapper, dbIns, dbIns2). Which then steps into Ent. Library to call Oracle cs classes associated to calling the apprpriate execution.
I've test the Procedure directly against Oracle with no issues. I've test the wrapper classes by changing the procedure into direct SQL and everything works fine. However once I use a procedure passed to ExecuteScalar against Oracle, it always returns the object as 'Nothing'. The ExecuteScalar works for SQL Server and DB2 when calling a procedure but not Oracle.
I read one article that indicated that this is because DAAB doesn't allow out parms with ExecuteScalar and that Oracle requires return values to be passed as Out parameters. Then it goes on to say that a person would need to do all transactions using ExecuteNonQuery instead of ExecuteScalar. I can get ExecuteNonQuery to work, but not ExecuteScalar. I just want to confirm Oracle's relationship with MS DAAB and the procedure regarding returns before doing away with using scalar anywhere. I also am wondering if I should take the time to rewrite the Ent. Lib. to use the ODP.NET connections instead of Microsoft's and if by doing this ExecuteScalar becomes available again.
Suggestions?