![]() |
Datenbank: ADS Local • Version: 7.1 • Zugriff über: TDataSet
ADS Spalte einlesen, filtern, in andere Spalte einfügen
Hallo!
Ich möchte gerne alle Einträge einer bestimmten Spalte einlesen, filtern und in eine ander Spalte einfügen. Wie muss ich die Schleife da anwenden? Habs so probiert, aber das haut nicht hin:
Delphi-Quellcode:
Viele Grüße..
var
i : integer; s : string; begin for i:=1 to ADSTable1.RecordCount-1 do begin s := DBEdit8.Text; s := Stringreplace(s,'/','',[rfReplaceAll]); s := Stringreplace(s,'-','',[rfReplaceAll]); s := Stringreplace(s,' ','',[rfReplaceAll]); AdsTable1.Edit; AdsTable1.FieldByName('tsuche').AsString := s; AdsTable1.Post; end; end; |
Re: ADS Spalte einlesen, filtern, in andere Spalte einfügen
Ich habe bisher noch nicht mit ADS Datenbanken gearbeitet, aber hier 2 Ansätze die imho laufen sollten:
1.
Delphi-Quellcode:
var
id : integer; s : string; Q: TAdsQuery; begin Q:=TAdsQuery.create(self); try Q.connection:=<DeineAdsConnection>; Q.SQL.Text:='UPDATE <Tabelle> SET [tsuche] = :matchcode WHERE ID = :DatensatzID'); Q.Prepared := true; // << weiss nicht, ob das bei ADS nötig ist .... ADSTable1.DisableControls; try While not ADSTable1.eof do begin s := ADSTable1.FieldByName('<Das Quellfeld>').asstring; id := ADSTable1.FieldByName('ID').asstring; s := Stringreplace(s,'/','',[rfReplaceAll]); s := Stringreplace(s,'-','',[rfReplaceAll]); s := Stringreplace(s,' ','',[rfReplaceAll]); Q.Parameters.ParamByName('DatensatzID').value :=id; Q.Parameters.ParamByName('matchcode').value :=s; Q.ExecSQL; AdsTable1.next; end; finally ADSTable1.EnableControls; end; finally FreeAndNIL(Q); end; end; 2. Veruche mal einfach in deinem Code
Delphi-Quellcode:
durch
for i:=1 to ADSTable1.RecordCount-1 do
begin ... end;
Delphi-Quellcode:
zu ersetzen ...
ADSTable1.first;
While not ADSTable1.eof do begin ... ADSTable1.next; end; Mit deiner FOR TO Schleife bewegst du den Datensatzzeiger nicht. Zumindest must du da noch ein Recno:=i mit einbauen damit das funktioniert. Schöne Grüße, Jens :hi: |
Re: ADS Spalte einlesen, filtern, in andere Spalte einfügen
Delphi-Quellcode:
Dein DBEdit8 ist doch sicherlich an irgendeine Komponente gebunden. Man verwende grundsätzlich nicht die DBEdit.XXX Methoden, sondern grefit auf die zugrundeliegende Datenmenge zu. Und ja, nimm den Ansatz von jensw_2000:
var
i : integer; s : string; begin for i:=1 to ADSTable1.RecordCount-1 do begin s := DBEdit8.Text; s := Stringreplace(s,'/','',[rfReplaceAll]); s := Stringreplace(s,'-','',[rfReplaceAll]); s := Stringreplace(s,' ','',[rfReplaceAll]); AdsTable1.Edit; AdsTable1.FieldByName('tsuche').AsString := s; AdsTable1.Post; end; end;
Delphi-Quellcode:
Oder gleich SQL:
While not AdsTable1.EOF do
begin //mach was AdsTable1.Next; end;
SQL-Code:
update #test set tsuche=REPLACE(REPLACE(REPLACE(tsuche,' ',''),'-',''),'/','');
|
Re: ADS Spalte einlesen, filtern, in andere Spalte einfügen
Hallo!
Danke! Klappt alles bestens! :mrgreen: Viele Grüße... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz