Access Violation in 64 bit

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
jdorlon
Posts: 202
Joined: Fri 05 Jan 2007 22:07

Access Violation in 64 bit

Post by jdorlon » Thu 09 Aug 2012 13:39

Hello,

I have found a bug with either ODAC or the Oracle client that occurrs only in 64 bit applications.

I am using Delphi XE2, ODAC 8.2.8, 64 bit Windows 7, Oracle 11.2 client and server.

Below is a script to create a few object types and the table, and insert the rows. When I try a "select * from the gr_accounts" using a TSmartQuery attached to a TDBGrid, it works fine when compiled in 32 bit. All properties of TSmartQuery and TOraSession are default values (except username, password and server, of course!). When compiled in 64 bit I get "Access violation at address ..... in module 'orageneric11.dll.' Read of address FFFFFFFFFFFFFFFF" If you don't get the error right away, scroll the grid to the right.

I think this will be easy for you to reproduce. If there is a simple code change I can make to fix it, please let me know.

Thanks,

-John

Code: Select all

CREATE OR REPLACE type GR_ADDR
AS OBJECT (
   matchcode varchar2(16),
   firmname varchar2(512),
   addrline varchar2(512),
   addrline2 varchar2(512),
   city varchar2(512),
   state varchar2(512),
   zip varchar2(5),
   zip4 varchar2(4),
   lastline varchar2(512),
   county varchar2(32),
   block varchar2(32),
   loccode varchar2(16),
   cart varchar2(16),
   dpbc varchar2(16),
   lotcode varchar2(16),
   lotnum varchar2(16)
);
/


CREATE OR REPLACE type gr_business_client as object
(
business_id number,
business_type number,
business_address gr_addr,
date_founded date
);
/


CREATE TABLE GR_ACCOUNTS
(
  ACCOUNT_ID         CHAR(12 CHAR),
  ACCOUNT_OPEN_DATE  DATE,
  BUSINESS_DETAILS   GR_BUSINESS_CLIENT,
  ACCOUNT_BALANCE    FLOAT(126)
)
COLUMN BUSINESS_DETAILS NOT SUBSTITUTABLE AT ALL LEVELS;


Insert into GR_ACCOUNTS
   (ACCOUNT_ID, ACCOUNT_OPEN_DATE, BUSINESS_DETAILS, ACCOUNT_BALANCE)
 Values
   ('000000000001', TO_DATE('04/28/2010 08:10:52', 'MM/DD/YYYY HH24:MI:SS'), GR_BUSINESS_CLIENT(1,1,
    GR_ADDR('A','O''Reilly','103 Executive Circle','Suite 304','Cary','NC','27513','3021',NULL,'Wake','462','S36E23',NULL,NULL,'COMMERCIAL','945681235'),TO_DATE('05/27/1980 00:00:00', 'MM/DD/YYYY HH24:MI:SS')), 0);
Insert into GR_ACCOUNTS
   (ACCOUNT_ID, ACCOUNT_OPEN_DATE, BUSINESS_DETAILS, ACCOUNT_BALANCE)
 Values
   ('000000000002', TO_DATE('04/28/2010 08:10:52', 'MM/DD/YYYY HH24:MI:SS'), GR_BUSINESS_CLIENT(2,1,
    GR_ADDR('B','Neilson and Sons','114 Kildaire Farm Rd',NULL,'Cary','NC','27511','3102',NULL,'Wake','834','S36W24',NULL,NULL,'COMMERCIAL','753856123'),TO_DATE('05/27/1980 00:00:00', 'MM/DD/YYYY HH24:MI:SS')), 0);
Insert into GR_ACCOUNTS
   (ACCOUNT_ID, ACCOUNT_OPEN_DATE, BUSINESS_DETAILS, ACCOUNT_BALANCE)
 Values
   ('000000000003', TO_DATE('04/28/2010 08:10:52', 'MM/DD/YYYY HH24:MI:SS'), GR_BUSINESS_CLIENT(3,1,
    GR_ADDR('C','Orange Animal Hospital','45 Larkin Lane',NULL,'Cary','NC','27513','1788',NULL,'Wake','943','S86E43',NULL,NULL,'COMMERCIAL','9002412'),TO_DATE('05/27/1980 00:00:00', 'MM/DD/YYYY HH24:MI:SS')), 0);
Insert into GR_ACCOUNTS
   (ACCOUNT_ID, ACCOUNT_OPEN_DATE, BUSINESS_DETAILS, ACCOUNT_BALANCE)
 Values
   ('000000000004', TO_DATE('04/28/2010 08:10:52', 'MM/DD/YYYY HH24:MI:SS'), GR_BUSINESS_CLIENT(4,1,
    GR_ADDR('D','Smith Family Practice','46 Larkin Lane',NULL,'Cary','NC','27513','1781',NULL,'Wake','943','S46E83',NULL,NULL,'COMMERCIAL','833543512'),TO_DATE('05/27/1980 00:00:00', 'MM/DD/YYYY HH24:MI:SS')), 0);
Insert into GR_ACCOUNTS
   (ACCOUNT_ID, ACCOUNT_OPEN_DATE, BUSINESS_DETAILS, ACCOUNT_BALANCE)
 Values
   ('000000000005', TO_DATE('04/28/2010 08:10:52', 'MM/DD/YYYY HH24:MI:SS'), GR_BUSINESS_CLIENT(5,1,
    GR_ADDR('E','Orange Animal Hospital','27 Merrifield Place',NULL,'Cary','NC','27511','1830',NULL,'Wake','813','N37E79',NULL,NULL,'COMMERCIAL','838033245'),TO_DATE('05/27/1980 00:00:00', 'MM/DD/YYYY HH24:MI:SS')), 0);
Insert into GR_ACCOUNTS
   (ACCOUNT_ID, ACCOUNT_OPEN_DATE, BUSINESS_DETAILS, ACCOUNT_BALANCE)
 Values
   ('000000000006', TO_DATE('04/28/2010 08:10:52', 'MM/DD/YYYY HH24:MI:SS'), GR_BUSINESS_CLIENT(6,1,
    GR_ADDR('F','Hal''s Restaurant','43 Larkin Lane',NULL,'Cary','NC','27513','1785',NULL,'Wake','943','S31W27',NULL,NULL,'COMMERCIAL','956911234'),TO_DATE('05/27/1980 00:00:00', 'MM/DD/YYYY HH24:MI:SS')), 0);
Insert into GR_ACCOUNTS
   (ACCOUNT_ID, ACCOUNT_OPEN_DATE, BUSINESS_DETAILS, ACCOUNT_BALANCE)
 Values
   ('000000000007', TO_DATE('04/28/2010 08:10:52', 'MM/DD/YYYY HH24:MI:SS'), GR_BUSINESS_CLIENT(7,1,
    GR_ADDR('G','Dr. Bradford','6124 Bellow Ct',NULL,'Raleigh','NC','27612','1988',NULL,'Wake','847','N76E20',NULL,NULL,'COMMERCIAL','561462356'),TO_DATE('05/27/1980 00:00:00', 'MM/DD/YYYY HH24:MI:SS')), 0);
COMMIT;

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: Access Violation in 64 bit

Post by AlexP » Fri 10 Aug 2012 10:12

hello,

Thank you for the information.
We have reproduced the problem.
When we have any results, we'll let you know.

Post Reply