Entwickler-Ecke
Datenbanken - Datenbank mit einer Schleife ändern
Robby - So 04.12.05 23:34
Titel: Datenbank mit einer Schleife ändern
Hei ich möchte eine Datenbank mit einer Schleife ändern hier mein Code,
aber der funzelt nicht. Kann mir Jemand Helfen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| begin Data.Table.first; while Not Data.Table.EOF do begin
if Data.Table.fieldByName('pos').AsString = Edit14.text then data.Table.Active:= true; Data.Table.edit; Data.Table.fieldByName('pos').AsString := Edit15.text ; Data.Table.post; Data.Table.next; end; end; end; end. |
Moderiert von
Christian S.: Delphi-Tags hinzugefügt.
smiegel - Mo 05.12.05 09:06
Hallo,
so sollte es gehen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| begin with Data.Table do begin First; while not EOF do begin if (FieldByName('pos').AsString=Edit14.Text) then begin Edit; FieldByName('pos').AsString:=Edit15.Text; Post; end; Next; end; end; / with Data.Table end; |
Robby - Mo 05.12.05 20:09
Habe dein Quelltext ausprobiert, aber leider hatte ich keinen Erfolg.
Bei mehreren versuchen änderte sich nur ein Feld und manchmal alle aber überwiegend nur ein Feld.
Gruß Robby
stifflersmom - Mo 05.12.05 20:15
Der Code von Smiegel sieht an sich gut aus...
Du solltest mal Deinen gesamten Quelltext hier posten,
allgemein sind die Glaskugeln in letzter Zeit ziemlich unzuverlässig...
Moin
Robby - Mo 05.12.05 20:27
Hier mein Quelltext.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm5.Button4Click(Sender: TObject); begin with Data.TableLager do begin First; while not EOF do begin if (FieldByName('pos').AsString=Edit14.Text) then begin Edit; FieldByName('pos').AsString:=Edit15.Text; Post; end; Next; end; end; ShowMessage('Die Änderungen wurden erfolgreich in der Datenbank abgespeichert.'); end; |
stifflersmom - Mo 05.12.05 20:38
| Zitat: |
| Bei mehreren versuchen änderte sich nur ein Feld und manchmal alle aber überwiegend nur ein Feld. |
Also, laut Deinem Code KANN sich auch nur ein Feld ändern, das Feld heißt bei Dir "pos".
Allerdings sollten sich in jedem Datensatz das Feld "pos" ändern wenn Die Bedingungen werfüllt sind, der Code sieht immer noch gut aus.
Vielleicht spielt der Cache Deines Rechners (oder der BDE) einen Streich.
Starte mal das Programm, laß es durch laufen, beende es und schaue dann mal mit der Datenbankoberfläche in die Tabelle rein und bestimme dann abschließend, ob nicht doch alle relevanten Datensätze verändert wurden.
Wenn es denn tatsächlich am Cache liegt, schau mal unter
FlushBuffers nach, könnte Dir weiter hefen.
Moin
Robby - Mo 05.12.05 21:26
Hurra, :lol: es funzelt ich habe eine neue Table-Komponente genommen.
Danke an alle für Eure Geduld.
Robby. :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!