AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADS Spalte einlesen, filtern, in andere Spalte einfügen
Thema durchsuchen
Ansicht
Themen-Optionen

ADS Spalte einlesen, filtern, in andere Spalte einfügen

Ein Thema von Grolle · begonnen am 7. Mär 2006 · letzter Beitrag vom 7. Mär 2006
Antwort Antwort
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#1

ADS Spalte einlesen, filtern, in andere Spalte einfügen

  Alt 7. Mär 2006, 00:02
Datenbank: ADS Local • Version: 7.1 • Zugriff über: TDataSet
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:
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;
Viele Grüße..

  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#2

Re: ADS Spalte einlesen, filtern, in andere Spalte einfügen

  Alt 7. Mär 2006, 01:39
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:
for i:=1 to ADSTable1.RecordCount-1 do
begin
  ...
end;
durch
Delphi-Quellcode:
ADSTable1.first;
While not ADSTable1.eof do
begin
  ...
  ADSTable1.next;
end;
zu ersetzen ...

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
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
678 Beiträge
 
Delphi 12 Athens
 
#3

Re: ADS Spalte einlesen, filtern, in andere Spalte einfügen

  Alt 7. Mär 2006, 09:42
Delphi-Quellcode:
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;
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:
Delphi-Quellcode:
While not AdsTable1.EOF do
  begin
    //mach was
    AdsTable1.Next;
  end;
Oder gleich SQL:
 update #test set tsuche=REPLACE(REPLACE(REPLACE(tsuche,' ',''),'-',''),'/','');
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#4

Re: ADS Spalte einlesen, filtern, in andere Spalte einfügen

  Alt 7. Mär 2006, 11:17
Hallo!
Danke! Klappt alles bestens!

Viele Grüße...

  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 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