Interbase incorrect fieldsize for TField
Posted: Thu 07 Jul 2011 15:12
IBDac version 3.60.0.23 with InterBase 2007 and InterBase XE.
When querying a InterBase database created with charset UNICODE_LE or UTF8 the automaticly and/or persitent fields are generated wirh the incorrect field size.
The problem is in the IBCClasses unit in the function TGDSConnection.GetCharLength, because the CharSetID used for these charsets (ID 59 for UTF8 and ID 64 for UNICODE_LE) in InterBase aren't in the case statement.
With IBX this worls without a problem. So please have a look at the unit IBSQL in function TIBXSQLVAR.GetCharsetSize because there are a lot more CharSetID's in the case statement.
If I add the CharSetID's 59 with Result := 4 and 64 with Result := 2 to the IBCClasses, the fieldsizes are correct and I cann't enter more characters in a DBEdit then the size of the field declared in the database.
Could you please verify if my corrections are correct ?
When querying a InterBase database created with charset UNICODE_LE or UTF8 the automaticly and/or persitent fields are generated wirh the incorrect field size.
The problem is in the IBCClasses unit in the function TGDSConnection.GetCharLength, because the CharSetID used for these charsets (ID 59 for UTF8 and ID 64 for UNICODE_LE) in InterBase aren't in the case statement.
With IBX this worls without a problem. So please have a look at the unit IBSQL in function TIBXSQLVAR.GetCharsetSize because there are a lot more CharSetID's in the case statement.
If I add the CharSetID's 59 with Result := 4 and 64 with Result := 2 to the IBCClasses, the fieldsizes are correct and I cann't enter more characters in a DBEdit then the size of the field declared in the database.
Could you please verify if my corrections are correct ?