Hallo swoob,
@Gollum:
Zitat:
Eine
Query hat kein Edit, Append und Insert. Datensätze werden über "INSERT", das in einem
SQL-Statemant übergeben werden muss, eingefügt.
Grundsätzlich kennt die TQuery Komponente durchaus Edit, Append und Insert, es muss sich bei der zugrundeliegenden Datenmenge jedoch um eine sogenannte editierbare Datenmenge handeln und die Eigenschaft RequestLive muss True sein.
@swoob: Warum versuchst du nicht den Code, den ich oben gepostet habe?
Wenn du versuchst einen Datensatz einzufügen, dessen Key bereits existiert, erhälst du eine "Key Violation". Leider hast du noch nicht gesagt, welchen Primärindex deine Tabelle enthält. Deshalb nehme ich weiter an, es ist das Datum. Dann sähe der Code wie folgt aus:
Delphi-Quellcode:
procedure TForm4.Button2Click(Sender: TObject);
begin
if Table1.FindKey([DateTimePicker1.Date]) then
{ Datensatz existiert schon, also überschreiben }
Table1.Edit
else begin
{ Datensatz existiert noch nicht, also neu anlegen }
Table1.Insert;
Table1Datum.Value := DateTimePicker1.Date;
end;
Table1ArtikelNr.Value := Query1.FieldByName('ArtikelNr').AsInteger;
Table1Produktname.Value := Query1.FieldByName('Produktname').AsString;
Table1Produkttyp.Value := Query1.FieldByName('Produkttyp').AsString;
Table1KundenNr.Value := StrToInt(Label7.Caption);
Table1.Post; // Alles klar, Datensatz wird geschrieben
end;