Guten Morgen Stefan,
auch dein Ansatz über Insert() funktioniert, wenn du die
Query zuvor geöffnet hast. Woher die
Query dann weiß in welcher Tabelle sie deine Daten unterbringen soll, scheint mir offensichtlich zu sein:
Delphi-Quellcode:
begin
// ...
with Query do
begin
SQL.Text := '
SELECT * FROM Kunden ORDER BY Nachname, Vorname, Wohnort';
Open;
end;
end;
{ ... }
begin
with Query do
begin
Append;
// Stellt einen leeren Datenpuffer bereit
// alternative Wertzuweisung
FieldValues['
Vorname'] := VornameEdit.Text;
// ...
Post;
// Fügt die Daten aus dem Puffer in die Tabelle ein
end;
end;
Ein Requery musst du eigentlich nur dann ausführen, wenn du Änderungen sichtbar machen möchtest, welche inzwischen von anderen Komponenten verursacht wurden. Das können Komponenten in deinem eigenen gerade laufenden Programm sein, oder eine weitere Instanz deines Programmes auf dem gleichen oder einem anderen Rechner, oder auch ganz fremde Programme.
Dein SELECT Statement liefert die vollständige Tabelle als Ergebnis. Wenn du deine Ergebnismenge über eine Projektion (Feldliste) oder eine Selektion (WHERE-Klausel)reduzieren kannst, dann kommt das der Performanz sehr zu Gute.
Du hast JET als deine Zugriffstechnik angegeben, aber du arbeitest mit
ADO und einem
OLE DB Provider. Dass letzterer sich auf die Zugriffsroutinen aus der JET Library stützt, gehört in die Abteilung Hintergrundwissen und wird nur in bestimmten Fällen wichtig.
Das meiste haben dir die Kollegen schon geschrieben, während ich die Tasten auf meinem Keyboard gesucht habe, aber ich schicke meinen Beitrag doch ab. For what it's worth.
Freundliche Grüße