Solved

using bde for database field with 6 decimal

Posted on 2004-03-23
15
872 Views
Last Modified: 2012-05-04
hi,
l'm using delphi 7 with bde. l'm having problem with database table which field have 6 decimal points.i used TQuery to retrieve the data and present to dbgrid. but its only show up to 4 decimal.
as i knew, bde will create BCD field for this but BCD can only support up to 4 decimal.the only fieldtype that can support up to 6 decimal is ftFMTBCD. i've tried to change the datatype to ftFMTBCD of fieldefs at runtime and re-create the field. when i opened the Tquery, it raised error
'expecting ftFMTBCD, actual ftBCD'. i cannot change bde to use others like dbexpress. any solution for this problem ? please....i really need solution to complete my application. any help would be appreciated.

thank you.

regards
eddie
0
Comment
Question by:Explorer060599
  • 6
  • 3
  • 3
15 Comments
 
LVL 22

Expert Comment

by:Ferruccio Accalai
ID: 10665868
What is the database? Pdox? IB?....
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 10668356
i hate bcd ....
what database?
listening . . .

0
 

Author Comment

by:Explorer060599
ID: 10673282
oracle and mssql. i need to support both.
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 10674814
usual i tested it on oracle,
since there is no decimal-type,
you have to define the field as
NUMBER(9,6) for example

such fields are treated as TFloatfield,
and there are no display issues

meikl ;-)
0
 

Author Comment

by:Explorer060599
ID: 10674866
because i've enabled the BCD in BDE. but i cannot disable it for somereason. anyway out ?
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 10674886
on oracle this setting has no effect

such fields are also treated as TFloatfield then

meikl ;-)
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:Explorer060599
ID: 10674993
i get TFloatfield when i disable the "Enable BCD" in bde. when it get enabled, it create field as TBCDField.
0
 
LVL 22

Expert Comment

by:Ferruccio Accalai
ID: 10675094
so use a tdatabase....
create an Alias In TDatabase linked to the oracle one, then double click on the Tdatabase and load the Defaults in the Wizard, then change the EnableBCD value there to FALSE...finally add your TDAtasets linked to the TDatabase Alias...
try this and tell us about it....
0
 

Author Comment

by:Explorer060599
ID: 10675230
as i mentioned, i cannot disable the "Enable BCD" since i need tbcdfield as well for others decimal field on preventing rounding error. but i also need to handle field more than 4 decimal.
0
 

Accepted Solution

by:
Explorer060599 earned 0 total points
ID: 10683623
l've found a workaround that uses TField.GetData and SetData. just hook on the TField.OnGetData and onsetdata, manually convert text to bcd and from.  the exmple can download from below's link
http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=13959

can i cancel this question now ?

btw, thank you for helps very very much.

regards
eddie
0
 
LVL 22

Expert Comment

by:Ferruccio Accalai
ID: 10685104
For me it's OK to PAQ and Refund....

F68 ;-)
0
 

Author Comment

by:Explorer060599
ID: 10685177
i dont know if its fair to your,bcox i found the solution myself. please tell me if i need to give point.
i dont mind to give point, the things i care abt is your helps. really really appreciate.

thank you.

regards
eddie
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now