So nun die letzte Variante für heute:
Delphi-Quellcode:
procedure TMainFrm.btnTestInput1Click(Sender: TObject);
var
CurrentCustomerID: string;
begin
//if IsEdit then
begin
CurrentCustomerID := lvProductList.Selected.Caption;
qryMain.SQL.Text:= 'UPDATE WARENVERKAUF1 SET ANZAHL = :ANZ WHERE ID= :CID';
//qryMain.SQL.Text:= 'UPDATE Warenverkauf1 SET KDNR = :KNR, NAME = :NAM, VORNAME = : VNA, FIRMA = : FIR, PRODUKT = : PRO, ANZAHL =: ANZ, PREIS = :PRE WHERE ID = :CID';
qryMain.ParamByName('CID').AsString := CurrentCustomerID;
//qryMain.ParamByName('KNR').AsString := edtCustomerNumber.text;
//qryMain.ParamByName('NAM').AsString := EdtName.text;
//qryMain.ParamByName('VNA').AsString := EdtVorname.text;
//qryMain.ParamByName('FIR').AsString := EdtFirma.text;
//qryMain.ParamByName('PRO').AsString := EdtProdukt.text;
qryMain.ParamByName('ANZ').asInteger:=strtoint(edtTestInput2.text);
//qryMain.ParamByName('PRE').AsString := EdtPreis.text;
qryMain.ExecSQL;
qryMain.SQL.Text := 'SELECT ID,KDNR,NAME,VORNAME,FIRMA,PRODUKT,ANZAHL,PREIS FROM WARENVERKAUF1';
qryMain.Open;
while not qryMain.EOF do
begin
RefreshItems(qryMain.FieldByName('ID').AsString,
qryMain.FieldByName('KDNR').AsString,
qryMain.FieldByName('Name').AsString,
qryMain.FieldByName('VORNAME').AsString,
qryMain.FieldByName('FIRMA').AsString,
qryMain.FieldByName('PRODUKT').AsString,
Inttostr(qryMain.FieldByName('ANZAHL').AsInteger),
qryMain.FieldByName('PREIS').AsString);
qryMain.Next;
end;
end;
end;
Also isEdit war wohl ein Störenfried. Habe ihn rausgenommen. in der Variante nur ID für Anzahl (s.o.) klappt es!!!
Er reagiert auf die Eingabe im Editfeld mit 66666 so, dass er mir die Datensätze kopiert und in der Kopie die Eingabe von 66666 aufführt. Beim Neustart ist dann in der Tabelle die 66666 exakt enthalten. Ist zwar komisch, doch es geht erst einmal.
Mit allen Feldern wollte er nicht und hat bereits bei VNA gemeckert, dass er VNA nicht kennen würde. Also dann zur Variante 2 - nur Anzahl übergegangen und hier das Ergebnis. Morgen will ich mir die Sache nochmals genauer ansehen.
Nochmals vielen Dank bislang. Wenn ihr eine Erklärung für das Verhalten haben solltet, wäre ich dankbar.
Jedenfalls klappt es mit dem obigen Code wie beschrieben.