Dbase Spalte füllen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
purzel1994
Beiträge: 18
Registriert: Do 11. Feb 2016, 17:13

Dbase Spalte füllen

Beitrag von purzel1994 »

Hallo,
ich möchte in eine Dbase Tabelle allen Einträgen in der Spalte "Verschickt" ein "X" setzen. Die Tabelle ist zu diesem Zeitpunkt auf ein paar Bestellungen gefiltert (Kunden ID).Hab das ganze so versucht. Dabei hängt sich aber das Programm immer auf..
Jemand eine Idee?

Code: Alles auswählen

 
  dbf1.Filter:=   'ID = "ID10"';
  dbf1.Filtered:=True;  
  Dbf1.Insert
  Dbf1.FieldByName('Verschickt').AsString := 'x';
  Dbf1.Post; 
 

purzel1994
Beiträge: 18
Registriert: Do 11. Feb 2016, 17:13

Re: Dbase Spalte füllen

Beitrag von purzel1994 »

Ich vermute mal das ich alle Spalten durchlaufen muss. Kann ich irgenwie eine Anweisung schreiben das er von
der ersten zur letzten Spalte alle durchläuft? So auf die Art?

Code: Alles auswählen

 
  Form5.Dbf2.Filter := 'ID=' + QuotedStr(DBLookupcomboBox1.Text) + 'and Versand=''';
 
   Form5.Dbf2.Filtered:=True;
 
   Form5.Dbf2.First;
   if Form5.Dbf2.FieldByName('Versand').AsString='' then
   begin
   Form5.Dbf2.Edit;
   Form5.Dbf2.FieldByName('Versand').AsString:='x';
   Form5.Dbf2.Post;
   Form5.Dbf2.Next;
   end;   
 

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Dbase Spalte füllen

Beitrag von shokwave »

Hallo,

also ich denke mit den Spalten liegst du eher falsch. Du wählst ja schon die richtige Spalte

Code: Alles auswählen

Form5.Dbf2.FieldByName('Versand').AsString:='x';
Du willst ja aber alle (gefilterten) Zeilen ändern. Also musst du mit der Schleife alle Zeilen abklappern.

Schau dir doch mal das Beispiel hier an: http://wiki.freepascal.org/Lazarus_Tdbf ... ng_filters
mfg Ingo

Antworten