Problem with TFMTBCDField - Again?!
Problem with TFMTBCDField - Again?!
Hi, we have a problem with TFMTBCDField where its return exception with message '?,21 is not valid BCD value'.
I have been searching in forun and found this post: http://devart.com/forums/viewtopic.php?t=10758
But, it's from 2007.
we were using the trial version and not have this problem.
We are using now the current version (2.40.12 (16-Oct-08)).
we have CodeGear™ Delphi® 2007 for Win32® R2 Version 11.0.2902.10471
with Firebird 1.5
I have been searching in forun and found this post: http://devart.com/forums/viewtopic.php?t=10758
But, it's from 2007.
we were using the trial version and not have this problem.
We are using now the current version (2.40.12 (16-Oct-08)).
we have CodeGear™ Delphi® 2007 for Win32® R2 Version 11.0.2902.10471
with Firebird 1.5
Hello, ... I also have the same problem and sent the following to technical support and am awaiting feedback.
Good morning,
Please examine my experience with the new driver...
Delphi 2009, dbexpress and Firebird 2.1 and drive dbxida240 and IBExpert 2008.08.08. And EnableBCD = TRUE and OptimizedNumerics = TRUE:
TFMTBCDField
When you use NUMERIC(15,2) gives error (normal record. And view gives the error message indicating an unrecognized character, a semicolon, the decimal numbers and a point).
This occurs if the NUMERIC hold between 15 and 10 ... and the definition appears as TFMTBCDField. If you choose to, for example: NUMERIC(9,2) = normal operation and the exchange appears as TFloatField.
Even changing the parameters EnableBCD and OptimizedNumerics, although the change compartment, but maintains problems.
What to do to keep the option of NUMERIC(15,2)?
TWideStringField
The same happens with VARCHAR:
even using ID_TABELA VARCHAR (2) NOT NULL, get the message: ...'cds_tab_proced: Type mismatch for field ID_TABELA', expecting: WideString actual: String'
With this, stopped the project. I do not know if occurs with other types of fields.
When possible, I look back.
Regards,
Good morning,
Please examine my experience with the new driver...
Delphi 2009, dbexpress and Firebird 2.1 and drive dbxida240 and IBExpert 2008.08.08. And EnableBCD = TRUE and OptimizedNumerics = TRUE:
TFMTBCDField
When you use NUMERIC(15,2) gives error (normal record. And view gives the error message indicating an unrecognized character, a semicolon, the decimal numbers and a point).
This occurs if the NUMERIC hold between 15 and 10 ... and the definition appears as TFMTBCDField. If you choose to, for example: NUMERIC(9,2) = normal operation and the exchange appears as TFloatField.
Even changing the parameters EnableBCD and OptimizedNumerics, although the change compartment, but maintains problems.
What to do to keep the option of NUMERIC(15,2)?
TWideStringField
The same happens with VARCHAR:
even using ID_TABELA VARCHAR (2) NOT NULL, get the message: ...'cds_tab_proced: Type mismatch for field ID_TABELA', expecting: WideString actual: String'
With this, stopped the project. I do not know if occurs with other types of fields.
When possible, I look back.
Regards,
We'll fix the problem with FMTBCD fields in the next build of the driver. The current build can work if you set the EnableBCD parameter to False.
Under Delphi 2009 the UseUnicode parameter is set to True by default. This means that fields created at design-time in Fields Editor should be TWideStringField instead of TStringField. You should recreate fields in Fields Editor or set the UseUnicode parameter to False.TWideStringField
The same happens with VARCHAR:
even using ID_TABELA VARCHAR (2) NOT NULL, get the message: ...'cds_tab_proced: Type mismatch for field ID_TABELA', expecting: WideString actual: String'
Hello, good morning.
Thank you for responding.
Just to supplement my participation:
FMTBCD => In my case EnableBCD parameter to False only works when the field is not recreated, ie recompiling the project done in Delphi 2007 without changing it. If after you brought to the Delphi 2009 I add or rebuild the fields = failure;
TWideStringField => In my case, the crash happened only in the fields recreated.
Thank you for responding.
Just to supplement my participation:
FMTBCD => In my case EnableBCD parameter to False only works when the field is not recreated, ie recompiling the project done in Delphi 2007 without changing it. If after you brought to the Delphi 2009 I add or rebuild the fields = failure;
TWideStringField => In my case, the crash happened only in the fields recreated.