Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ SQL » Oracle RefCursor and Stored Procedure
Re: Oracle RefCursor and Stored Procedure [message #42994 is a reply to message #42963] Tue, 22 April 2014 11:26 Go to previous messageGo to previous message
aksdb is currently offline  aksdb
Messages: 6
Registered: April 2014
Promising Member
I was wrong: RawToValue is necessary. However something is wrong there.

I added some debug output to "void OCI8Connection::SetParam(int i, const Value& q)":
Cout() << Format("Type is 0x%X (%s)", (int)q.GetType(), q.GetTypeName()) << EOL;


This results in:
Type is 0x8000000 (N3Upp11RawValueRepIPNS_3SqlEEE)


Obviously, this means that type is != UNKNOWN_V, so we run into the assertion "NEVER();".

Just for the sake of testing it, I moved the relevant check (if(IsTypeRaw<Sql *>(q)) ...) into the default case. This will at least make the Oracle call succeed and I also get a result set I can iterate on, however when the application closes, I get a report about a heap corruption:
Heap is corrupted --memory-breakpoint__ 1189


Something's very wrong here, I'm afraid.
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Schema description documentation not matching code behavior
Next Topic: PATCH: SqlSelect::ForUpdate() should generate nothing for SQLITE3
Goto Forum:
  


Current Time: Wed May 08 04:42:35 CEST 2024

Total time taken to generate the page: 0.01358 seconds