Zitat von
Real-TTX:
1. Gibt es eine Möglichkeit eine Ergebnismenge (die mit Select abgefragt worden ist) zu ändern ? Ich bekomme eine Menge und diese ändere ich und schicke sie anschließend wieder an die Datenbank zurück?
Delphi-Quellcode:
AdoQuery1.SQL.Text := '
SELECT * FROM Tabelle';
AdoQuery1.Open;
// bestimmten Datensatz suchen (Locate ist langsam, aber ich will nur zeigen, dass man bel. Datensätze ändern kann)
if not AdoQuery1.Locate('
Artikel', '
Windows Vista', [])
then raise Exception.Create('
Artikel nicht gef.');
AdoQuery1.Edit;
// Änderungsmodus
// Feldinhalte ändern
AdoQuery1['
Preis'] := AdoQuery1['
Preis'] * 1.25;
AdoQuery1['
LastChange'] := Now;
AdoQuery1.Post;
// abspeichern
Zitat von
Real-TTX:
2. Wenn ich eine aktive Verbindung habe, wie füge ich Datensätze hinzu OHNE
SQL wie "INSERT INTO xy..." ?
Genau gleich wie oben, nur statt .Edit verwendest du .Append und musst natürlich alle Felder (die NOT NULL sind) bestücken.
Datensätze über das Dataset einzufügen ist etwas langsamer als direkt über INSERT INTO aber oftmals
spielt das keine Rolle und ist deutlich angenehmer, als die INSERTS selbst zu erzeugen.