Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Grundlegende Frage zum Thema ADO und Access

  Alt 23. Feb 2007, 07:19
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
  Mit Zitat antworten Zitat