if the field definition is a auto increment field, the TMTDataFieldEh should have a AutoIncrement as True, but current code missed.
procedure TMTDataStructEh.BuildStructFromFieldDefs(FieldDefs: TFieldDefs);
var
i: Integer;
DataField: TMTDataFieldEh;
begin
MemTableData.DestroyTable;
for i := 0 to FieldDefs.Count-1 do
begin
DataField := CreateField(DefaultDataFieldClasses[FieldDefs[i].DataType]);
if FieldDefs[i].DataType=ftAutoInc then //<-----please add this line
DataField.AutoIncrement := True; //<-----please add this line
this bug is obvious, so no demo is needed