Hi all,
I just wanted to share a problem with the newsgroup and see if anyone has come across it before.
We are working on a LabVIEW application that talks to an oracle database. Because it is a requirement that we work with oracle objects (not just textbook SQL statements), we have decided to use oo4o (Oracle Objects for OLE). This is a bunch of activeX controls from Oracle that can work very efficiently with oracle databases. Typically, these controls are used from within VB applications.
To make a long development story short, we have a working application-- we can send and receive data from the database very efficiently and everything works fine except when the application exits. Then, on the way out it crashes with a LabVIEW.exe application error: "The instruction at "0X000000" referenced memory at "0x000000". The memory could not be read."
In the development environment this crash occurs NOT when the vi is done executing but upon exiting LabVIEW itself. In the built executable this crash occurs after the *.exe panel has left the desktop upon quitting.
I am beating my head against the wall with this crash-- although it does not affect the operation of the application, it looks really bad to crash every time an application exits.
The only thing that I see that could explain it is that the oo4o activeX control does not have a "close" method for the oradatabase object-- in the oo4o docs it says something about the ordatabase object being destroyed automatically when it goes "out of scope" in VB. I'm not sure how this translates to LabVIEW. On the database server side a connection exists until the application crashes.
Anyways, here are my questions:
1) Has anyone had success with using oo4o from LabVIEW? If so, did you see anything like this?
2) I am pretty sure I closed all the activeX refs that I opened. Is there anything else that could be the culprit?
3) What does it mean to destroy an activeX object when it goes out of scope in VB and how can the same thing be done in LabVIEW?
Thanks for any info,
-H.