AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TClientDataset filter problem
Thema durchsuchen
Ansicht
Themen-Optionen

TClientDataset filter problem

Offene Frage von "kerim80"
Ein Thema von kerim80 · begonnen am 16. Jun 2005
Antwort Antwort
kerim80

Registriert seit: 16. Jun 2005
9 Beiträge
 
#1

TClientDataset filter problem

  Alt 16. Jun 2005, 18:28
Datenbank: firebird • Version: 1.5 • Zugriff über: interbase console
Hallo,
ich benutze delphi5 und Firebird 1.5.

Habe eine Adress TAbelle und im Programm greife ich auf diese Adresstabelle in form einer liste zu.
also ich habe eine Adressliste mit folgenden komponenten:

TDBGrid, das auf ein Tdatasource zugreift,
das wiederrum auf eine TClientDataset zugreift und das mit einem TDataSetProvider verknüpft ist.
und das TDatasetProvider greift auf einen TIBOQuery zu.
und diese liste hat eine filterfunktion die auch sonst immer funktioniert aber bei dem folgenden nicht!!!!

so:
ich habe 3 Adressen mit z.B. folgenden Namen özpolat, Özpolat und ÖZPOLAT drin.
wenn ich mit 'özpola' filtere dann findet er alle drei adressen aber wenn ich mit 'özpolat' filtere dann findet er keinen.

und folgenden Code benutze ich




Delphi-Quellcode:
procedure TBasisliste.sbfilterClick(Sender: TObject);
var f:string;
    i:integer;
begin
  inherited;
  f := edit1.text;
  if f = 'then
  begin
    cd.filter :='';
    cd.filtered:=false;
    sbfilter.down:=false;
  end
  else
  begin
      if sbfilter.down then
      begin
        cd.Filtered:=false;
        cd.Filter:='';

        for i := 0 to cd.Fields.Count-1 do
        begin
          if cd.fields[i] is TStringField then
          begin
            if cd.filter <> 'then cd.filter := cd.filter + ' OR ';
            cd.filter := cd.filter + 'UPPER('+cd.fields[i].FieldName + ') LIKE UPPER(' + #39 + '%'+f+'%'+#39+')';
          end;
        end;

        if cd.filter <> 'then cd.filtered := true
        else
        begin
            cd.filtered := false;
            sbfilter.down:=false;
        end;
      end
      else
      begin
        cd.filter :='';
        cd.filtered:=false;
        sbfilter.down:=false;
      end;
  end;
end;

wenn mir einer dabei helfen oder einen besseren vorschlag hat bin sehr dankbar.
  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 08:27 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