Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Datenbankeintragänderung mit schleife (https://www.delphipraxis.net/178662-datenbankeintragaenderung-mit-schleife.html)

Natcree 20. Jan 2014 12:00

Datenbankeintragänderung mit schleife
 
Hallo Ich möchte über den unteren Code den angezeigten Text in dbcombobox3 und 4 sowie dbedit 16 ändern. das Ganz läuft über eine repeat Schleife. Nunmehr dbedit16.text und DBCombobox4.text ändert er. Den Text in der DBCombobox3 ändert er nicht.

In der DBcombobox3 habe ich 2 Items item1 heisst bezahlt item2 offen.


Delphi-Quellcode:
procedure TForm1.AlleBeitrageaufoffensetzen1Click(Sender: TObject);
begin
Clientdataset1.First;
repeat
Clientdataset1.edit;
dbcombobox3.Text:='offen';
DBcombobox4.text:='';
DBEdit16.text:='';
Clientdataset1.Post;
Clientdataset1.Next;
until Clientdataset1.Eof;
if Clientdataset1.eof=true then showmessage('Alle Daten Aktualisiert');
end;
Woran kann es liegen ??? ich weiss nicht mehr weiter

baumina 20. Jan 2014 12:08

AW: Datenbankeintragänderung mit schleife
 
Normalerweise macht man Schleifen über eine Datenbank mit while, weil bei repeat die EOF-Abfrage für den ersten Datensatz (himitsu) nicht stimmt.

Delphi-Quellcode:
aDB.First;
while not aDB.EOF do
begin
  aDB.Next;
end;
Dann ändert man Datenbank-Daten eigentlich nicht in den Anzeige-Komponenten, sondern auf der Datenbank selber.

Delphi-Quellcode:
aDB.Edit;
aDB.FieldByName('FeldName').AsString := 'neuer Text';
aDB.FieldByName('Feldname').AsInteger := 1;
aDB.Post;

Natcree 20. Jan 2014 12:23

AW: Datenbankeintragänderung mit schleife
 
Danke das wars es :)

himitsu 20. Jan 2014 12:24

AW: Datenbankeintragänderung mit schleife
 
Zitat:

Zitat von baumina (Beitrag 1244523)
Normalerweise macht man Schleifen über eine Datenbank mit while, weil bei repeat die EOF-Abfrage nicht stimmt.

Das EoF stimmt schon, aber beim First wird es nicht ausgewertet, was Probleme macht, wenn es keine Datensätze gibt. (also entweder While oder ein extra IF, für's First)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz