Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: DBASE Datenbunk aktualisieren

  Alt 23. Okt 2005, 11:58
Hallo Conny,

Zitat von marabu:
Die eigentlichen drei Zeilen zum Aktualisieren sind in Ordnung.
Du musst woanders suchen. Gibt es eine Fehlermeldung? Wenn ja, dann teile sie bitte mit. Wenn nein, wie stellst du exakt fest, dass die Änderung gemacht bzw. nicht gemacht wurde?

Nur ein Versuch deine Neugier doch noch zu wecken - wenn du bei Table1 einen Index auf ARTIKELNUM einstellst, dann geht das hier anstelle der ewigen Schleife:

Delphi-Quellcode:
...
with DataModule1.Table1 do
  if FindKey([rechnungszeile.artikel.Artikelnummer]) then
  begin
    Edit;
    FieldValues['LAGERBEST'] := rechnungszeile.anzahl;
    Post;
  end;
...
Und mit der Query-Komponente könntest du noch einfacher zum Ergebnis kommen:

Delphi-Quellcode:
...
  with LagerQuery do
  begin
    SQL.Text := 'UPDATE lager SET best = best - :anzahl WHERE artnr = :artnr';
    Params.ParamByName('artnr').Value := rechnungszeile.artikel.Artikelnummer;
    Params.ParamByName('anzahl').Value := rechnungszeile.anzahl;
    ExecSql;
  end;
...
Wobei der SQL-Text sogar nur einmal gesetzt werden müsste, da er sich ja nicht ändert. Und noch einfacher würde es, wenn die Bewegungsdaten selbst auch in einer Datanbank-Tabelle gespeichert wären...

Sonntagsgrüße vom marabu
  Mit Zitat antworten Zitat