Thema: Delphi TADODataset und Locate

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: TADODataset und Locate

  Alt 18. Mai 2010, 15:25
Hier kommt eine Procedure die du als Filter zur Volltextsuche einsetzen kannst:
Delphi-Quellcode:
procedure TForm1.DoFilterRecord(DataSet: TDataSet;var Accept: Boolean);
var
   i : Integer;
   fields : TFields;
begin
   fields := dataset.Fields;
   for i := 0 to fields.Count-1 do
   begin
      if CompareWildText(Suchmuster, fields[i].Text) then
      begin
         Accept := True;
         Exit;
      end;
   end;
   Accept := False;
end;
Die Funktion CompareWildText() prüft ob das Suchmuster im Datenfeld enthalten ist.
Siehe: Stringvergleich mit Wildcards

Damit kannst du jetzt also einen Volltextfilter setzen indem du das Event OnFilterRecord auf die Methode von oben richtest.
Du kannst damit aber auch Suchen.
"Suchen" ist der kleine Bruder des "Filters".

Delphi-Quellcode:
procedure TForm1.Volltextsuche(Dataset:TDataset);
var
  accept : boolean;
begin
  dataset.DisableControls;
  try
    while not Dataset.Eof do
    begin
      DoFilterRecord(Dataset, accept);
      if accept then
        break; // gefunden
      Dataset.Next;
    end;
  finally
    dataset.EnableControls;
  end;
end;
Andreas
  Mit Zitat antworten Zitat