Einzelnen Beitrag anzeigen

Benutzerbild von Stefan Hueg
Stefan Hueg

Registriert seit: 13. Jun 2004
Ort: Gießen
187 Beiträge
 
Delphi 2006 Professional
 
#1

Grundlegende Frage zum Thema ADO und Access

  Alt 23. Feb 2007, 03:17
Datenbank: Access • Version: 2003 • Zugriff über: Jet 4.0
Ich arbeite mich gerade in das Thema Datenbanken ein und sehe dass es ziemlich eingerostet ist.

Nun habe ich mich dran gemacht meine Access Datenbank in Delphi einzubinden, und zwar mache ich das über das TADOConnection (für die Verbindung), TADOQuery (für Abfragen) und TDataSource (Verbindung zwischen Query und DBGrid beispielsweise).

Ich hoffe diese Hierarchie ist richtig:

Connection -> Query | -> DataSource -> DBGrid

Eine ganz einfache Abfrage geschieht dann so:

Delphi-Quellcode:
  Query.SQL.Text := 'select * from Kunden';
  Query.Open;
Open deshalb weil es mir die Hilfe empfohlen hat. ExecSQL soll man angeblich nur nehmen bei Inserts, Updates etc.

Nun zu meiner eigentlichen Frage:
Möchte ich nun einen Datensatz hinzufügen, dachte ich mir, bastelst du dir einfach ein Insert zusammen, packst es in das Query und schickst es auf die Reise. War jedoch ziemlich umständlich (und hat nicht funktioniert ^^).

Daher habe ich einen neuen Versuch gestartet über folgende Syntax:

Delphi-Quellcode:
  Query.Insert; //Fügt einen neuen Datensatz hinzu?
  Query.FieldByName('Vorname').AsString:=Edit1.Text;
  Query.FieldByName('Nachname').AsString:=Edit2.Text;
  Query.FieldByName('Strasse').AsString:=Edit3.Text;
  Query.FieldByName('Hausnummer').AsString:=Edit4.Text;
  Query.FieldByName('Wohnort').AsString:=Edit5.Text;
  Query.FieldByName('PLZ').AsString:=Edit6.Text;
  Query.Post; //Postet die Änderungen an die DB?
  Query.Refresh; //Führt die Abfrage (select * from Kunden) neu aus?
Sind die Kommentare die ich gesetzt habe inhaltlich richtig? Und woher weiß das Insert in welche Tabelle ich den neuen Datensatz einfügen will? Kann man das so machen oder bin ich auf dem Holzweg?

Hoffe ihr könnt mir helfen

Viele Dank im Voraus,

Stefan
Stefan Hueg
  Mit Zitat antworten Zitat