Exception on activating a table

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
FanderlF
Posts: 17
Joined: Thu 21 Dec 2006 13:43

Exception on activating a table

Post by FanderlF » Thu 21 Dec 2006 14:04

Hello,
We use odac580cb6 to access our Oracle Database (V9). Now we get a debugger exception when we try to activate one specific table.

The Problem ist that it only occurs for one table "DC_RULEMASTER". We use TOraTable to get access to that table.

When we try to set Active = true (in onFormShow -> all components are available) then the following EAccessViolation with the Message "Access Violation at Address 007B1700 in Modul... . Reading from Address '0000005C'." occurs. It is declined as a Debugger Exception.

As it happens just with one table we tried the following steps to get rid of the exception:
- Replace TOraTable Component by a new one
- Replace and Rename the Component
- Comparing settings with other tables (all equal)
- Replacing the Table in the Database with a new one having the same name and the same data

We can't catch the exception and it's really annoying when debugging the Program. Further I dont like having exceptions in my Program I dont know where they come from.
The Program works perfectly if I compile it with final options. But as soon as I set the compile options to debug the exception is raised.

Maybe anybody knows where that excpetion comes from?

Would be great if anybody could help as we don't know what to try further :(

Could it be a problem if I have 2 TOraTables pointing to the same Table int the same session?

Kind Regards,
Florian Fanderl
Conti Automotive Systems

FanderlF
Posts: 17
Joined: Thu 21 Dec 2006 13:43

Post by FanderlF » Thu 21 Dec 2006 16:07

ok... the problem were the 2 TOraTables pointing to the same table in the DB. Worked well in runtime mode... but when running in debug mode (in borland builder) i got a debugger message. :oops:

I used this mechanism to clone a row in the database. Then I'll have to build a SQL command doint this for me :)

Maybe this helps anybody else having this problem :D

Post Reply