Wednesday, December 26, 2012

Oracle DBX Driver

Today I was looking my draft posts in blogger.   I found this one, I actually ran into this a several months ago...

Today, I ran into the following:

Access violation at address 00368099 in module 'dbxora.dll'. Write of address 00000000

It occurs when calling TSqlQuery.Next after retrieving several thousand rows.     I stepped through the Delphi code and found the error actually occurs inside the  dbxora.dll.

I ran the same query in Toad, which works until you scroll to the bottom of the query.   
Then it raises the following message: 
  ORA-01427: single-row subquery returns more than one row

So when I found out the real error was, it was easy to see my mistake and fix the query.

Besides the problem that I created I see the following problems with this story.

  1. received an A/V instead of a valid error message.    
  2. The source code to dbxora.dll is not present which means I don't have a way to change this behavior.

Note: This project was written with Delphi XE Update 1