LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

how does the interface to ADO drivers work?

My problem is that inserting BLOBs into an Oracle database using their ADO drivers is very slow. I have talked to Oracle and to troubleshoot the problem that need to know exactly what LV tells the ADO drivers to do during the insert. There is clearly something going on because LV somehow filters-out some of the methods and properties that the ADO provides.

How can I find out what LV is sending to the drivers?

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 1 of 5
(3,024 Views)
Hi, Mike

I can't completely answer your question but will tell you the best I can. If you dig into the guts of the Database Connectivity Toolkit VIs, you'll eventually get down to the ActiveX layer. Here you will see exactly what methods and properties are used and in what order. You can use the LabVIEW profiling tools to see what subVIs are the bottlenecks and then dig into that code to see which node is taking the majority of the time.

I'm not sure what you mean by LabVIEW filtering out some of the methods and properties. The Invoke and Property Nodes you see are exactly what is called and with the values that are wired into the various parameters. These are the same methods and properties that you'd call if you were writing a VC or VB program. LabVIEW it
self doesn't directly talk to the Oracle drivers, as you see, it just passes data to the ActiveX nodes. ActiveX is what is passing the data to/from the drivers.

I, too, have noticed that the Oracle drivers are slow. However, the ones written by Microsoft for Oracle don't work at all for binary data. So I'll take slow over not functioning any day. Just out of curiosity, which of Oracle's drivers are you using-- ODBC or OLE DB? What happens when you use the other one?

Please let me know what you find out. Please let me know if I can be of further assistance.

Crystal
0 Kudos
Message 2 of 5
(3,024 Views)
First, I am not using the Database Connectivity Toolkit. I have written drivers that call Oracle's ADO (OLE DB) drivers directly. And the LV interface is filtering things out. For example, the documentation on the drivers says there's a method called "Apppend Chunk" but it's not available from LV.

What I need to know is what is the nature of the interface between the ActiveX interface and code such as the Oracle drivers.

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 3 of 5
(3,024 Views)
Sorry, Mike

You've gone beyond my immediate expertise. I'm the owner of the Database Connectivity Toolset and am only familiar with the generic ADO interface. So do you call the Oracle drivers from LabVIEW ActiveX functions or are you using the Call Library Node to go through their drivers directly at the C level?

Crystal
0 Kudos
Message 4 of 5
(3,024 Views)
I'm using the ActiveX interface.

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 5 of 5
(3,024 Views)