Wenn ich im Lazarus (V0.9.27) die TMemDataset im Designer die Felder (Eigenschaften >> Fielddefs) eingeben, dann funktioneren die Felder nicht richtig.
Also mit .Append und .Post wird zwar ein neuer Datensatz angelegt, im verknüpften Grid wird aber nur eine leere Zeile und keine Daten angezeigt.
Wenn ich aber die FieldDefs im Code zur Laufzeit manuell programmiere, dann geht's richtig und im Grid werden meine Daten angezeigt.
Mein Demo-Code:
Code: Alles auswählen
procedure TfrmWizTracker.Button1Click(Sender: TObject);
begin
If Not dsMem.Active Then
Begin
(* dsMem.FieldDefs.Clear;
dsMem.FieldDefs.Add('CANID', ftInteger);
dsMem.FieldDefs.Add('Seriennummer', ftInteger);
dsMem.FieldDefs.Add('Version', ftInteger);
dsMem.FieldDefs.Add('Neu', ftString, 20); *)
dsMem.Open;
End;
dsMem.Append;
dsMem.Fields[0].AsInteger := 2;
dsMem.Fields[1].AsInteger := 4;
dsMem.Fields[2].AsInteger := 777777;
dsMem.Fields[3].AsString := 'NNNNNN';
dsMem.Post;
end;