Page 1 of 1

type mismatch for field'???', expecting: BCD actual: FMTBcdF

Posted: Mon 05 Sep 2011 12:15
by flavio80s
Hello.
I have a problem with different versions of MySQL and DbxMda driver.
Working with mysql 4.1 the driver returns me a kind of field. When I access mysql 5.5, the driver returns me another type of field, resulting in the message "type mismatch for field'???', expecting: BCD actual: FMTBcdField."
This always happens with the type BCD, FMTBcdField and Float.
Is there anything I can do to always return the same type.
I bought the source code in the hope of repairing it, but I'm scared of not being able to fix.

Posted: Mon 05 Sep 2011 14:50
by flavio80s
I only use Double field type in my tables.
also happens with fields made ​​up of expressions.
I need the driver returns the same type of field with both MySQL versions.

Posted: Tue 06 Sep 2011 13:25
by flavio80s
anyone?

Posted: Wed 07 Sep 2011 07:19
by AndreyZ
Our dbExpress driver for MySQL maps the DOUBLE type to TFloatField for all versions of MySQL server. You can look at the mapping table in the dbExpress driver for MySQL documentation (Readme.html). Different versions of MySQL server can return different types for some expressions. We cannot influence it.

Posted: Thu 13 Oct 2011 20:21
by flavio80s
I have a compiled application in Delphi 7 using dbxmda320 that accesses mysql 4.1 and works perfectly.
If I use the dll version dbxmda470 without recompiling the application now shows the message "type mismatch for field'???', expecting: BCD actual: FMTBcdField.." This is also with the recently released version dbxmda50.
In short, the version of the dll influences how the Delphi recognizes the type of the field.
I need an urgent response.

Posted: Fri 14 Oct 2011 12:40
by AndreyZ
The point is that we changed dbExpress driver for MySQL behaviour. Now the DECIMAL type is mapped to TFMTBCDField. To solve the problem, you should recreate persistent fields.