Einzelnen Beitrag anzeigen

EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
415 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#18

AW: gesonderte Ergebnisberechnung in DB-Tab eingeben

  Alt 11. Apr 2017, 21:42
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.
Norbert
  Mit Zitat antworten Zitat