Zitat von
motu:
Nun stellt sich die Frage, wie bekomme ich meine Variablen in den
SQL Ausdruck, und wie kann ich, sofern es passende Datensätze gibt, diese dem Nutzer anzeigen?
Damit dies sauber funktioniert brauchst du ein (oder mehrere) Primärschlüsselfeld (z.B. Kundennummer).
So wird ein Datensatz eindeutig identifiziert.
Delphi-Quellcode:
ADOQuery1.SQL.Text := 'SELECT * FROM Tabelle WHERE pkeyfeld=:pkeyfeld';
ADOQuery1.Parameters.ParamValues['pkeyfeld'] := akt_pkey;
ADOQuery1.Open;
// die Abfrage kann entweder leer sein oder liefert genau 1 Datensatz
if ADOQuery1.IsEmpty then
begin
// neuen Datensatz einfügen
ADOQuery1.Insert;
ADOQuery1.FieldValues['pkeyfeld'] := akt_pkey;
ADOQuery1.FieldValues['Feld2'] := 'irgendwas anderes';
ADOQuery1.Post;
end
else
begin
// form2 ist ein Hilfsformular, dass die Datenfelder eines Datensatzen anzeigt
// der Benutzer kann entweder OK oder Abbrechen klicken
form2.Dataset := ADOQuery1;
if form2.ShowModal = mrOK then
begin
// bestehender Datensatz überschreiben
ADOQuery1.Edit;
// alle Felder bestücken mit Ausnahme des pkeyfeld
ADOQuery1.FieldValues['Feld2'] := 'irgendwas anderes';
ADOQuery1.Post;
end
else
ShowMessage('Daten wurde nicht überschrieben'); // später weglassen
end;
ADOQuery1.Close;