BCD Overflow

Discussion of open issues, suggestions and bugs regarding usage of dbExpress drivers for Oracle in Delphi and C++Builder
Post Reply
webpac
Posts: 32
Joined: Wed 04 Apr 2007 16:13

BCD Overflow

Post by webpac » Wed 04 Apr 2007 16:19

Hi everyone,

I just have pay theDbxOda. I use Oracle 10g Express. I got an error with this SQL request :

Code: Select all

SELECT 
	VENTE.CA/VENTE.UNITE
FROM 
	VENTE 
Débordement BCD
and in english it's
BCD overflow
I use the last version 3.1.0.8 of DbxOda and Delphi7.

Thanks.

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by Plash » Thu 05 Apr 2007 07:38

Please provide the Pascal code where the error occurs and the SQL statement to create the VENTE table.

webpac
Posts: 32
Joined: Wed 04 Apr 2007 16:13

Post by webpac » Thu 05 Apr 2007 12:42

Hi,

This is how the table is created :

Code: Select all

CREATE TABLE VENTE (REGION0 VARCHAR2(15), VILLE0 VARCHAR2(15), FAMILLE0 VARCHAR2(15), PRODUIT0 VARCHAR2(15), EXERCICE DOUBLE PRECISION, TRIMESTRE DOUBLE PRECISION, MOIS DOUBLE PRECISION, ANMOIS VARCHAR2(15), CA DOUBLE PRECISION, UNITE DOUBLE PRECISION) STORAGE ( INITIAL 1M NEXT 5M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 )
This is the TSQLConnection params :
DataBase=MYBASE,User_Name=MYNAME,Password=MYPASSWORD,GetDriverFunc=getSQLDriverORA,LibraryName=dbexpoda.dll,VendorLib=OCI.DLL,BlobSize=-1,ErrorResourceFile=,LocaleCode=0000,"Oracle TransIsolation=ReadCommited"

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by Plash » Fri 06 Apr 2007 07:33

If you are using the DOUBLE PRECISION data type, you should set the EnableBCD connection option to False just after the connection is opened.

Code: Select all

const
  coEnableBCD = TSQLConnectionOption(102);
begin
  SQLConnection1.Open;
  SQLConnection1.SQLConnection.SetOption(coEnableBCD, Integer(False));
end;

webpac
Posts: 32
Joined: Wed 04 Apr 2007 16:13

Post by webpac » Fri 06 Apr 2007 07:56

Thanks, it works.

Post Reply