I noticed a problem in the configuration of the Mysql SQLdialect:
By default Aurelius, uses T & F in Char(1) columns for boolean values.
If the following is used
with (TSQLGeneratorRegister.GetInstance.GetGenerator('MySQL') as TMySQLSQLGenerator) do
UseBoolean:=true;
to have Aurelius to pass boolean values, Aurelius creates BIT type columns for boolean values and that generally compatible with others systems.
BUT with FireDAC we have a problem:
For Mysql, Firedac has an other configuration option:
TinyIntFormat Controls the TINYINT(1) representation. The default value is Boolean.
- Boolean - TINYINT(1) columns are represented as dtBoolean.
- Integer - TINYINT(1) columns are represented as dtSByte or dtByte.
if TinyIntformat is configured to be dtSByte or dtByte for TINYINT then BIT fields are not updated.
I think the best way to overcome this is to have custom values for boolean values that could 'T' or '1' and 'F' or '0' (if the above UseBoolean option is false) and an other config option in the SQLdialect to set to be created BIT or CHAR(1) and (why not?) Byte or TinyInt.