Einzelnen Beitrag anzeigen

Nils S.

Registriert seit: 10. Apr 2014
36 Beiträge
 
Delphi XE5 Professional
 
#1

Merkwürdige Anzeige in StringGrid bei Query Filter

  Alt 18. Apr 2014, 12:49
Hallo zusammen,

ich habe eine Form, welche eine Benutzerverwaltung realisiert und alle angelegten Benutzer in einem StringGrid auflistet,
welches über eine Query gefüllt wird.
Es gibt ein TEdit zur freien Suche, wonach dann das Query gefiltert wird.

Ich arbeite mit XE5, FireMonkey und als Datenbankkomponente verwnde ich FireDAC.

Ich habe es, relativ umständlich, hin bekommen:

Delphi-Quellcode:
procedure SetQryUserFilter;
begin
  if UserSettingsFrm.edtFreeSearch.Text <> 'then //TEdit in dem frei gesucht werden kann
  begin
    with UserDat.qryUser do //Query mit der Benutzertabelle aus der Datenbank
    begin
      Filter :=
        ('lower(LAST_NAME) like ''%' + UserSettingsFrm.edtFreeSearch.Text + '%''' +
        ' or lower(FIRST_NAME) like ''%' + UserSettingsFrm.edtFreeSearch.Text + '%''' +
        ' or lower(LOGIN_NAME) like ''%' + UserSettingsFrm.edtFreeSearch.Text + '%''' +
        ' or lower(USER_PROFILE) like ''%' + UserSettingsFrm.edtFreeSearch.Text + '%''');
      Filtered := True;
    end;
  end
  else
  begin
    with UserDat.qryUser do
    begin
      Filter := '';
      Filtered := False;
    end;
  end;
  GetTableUser; //Prozedur, die qryUser.Active auf False und True setzt um Benutzertabelle aus Datenbank neu zu laden.
  SetStrngrdUserFormat; //Prozedur, die die Formatierung des StingGrid setzt.
end;
Komisch ist nun, wenn ich die beiden letzten Prozeduren weg lasse, kommt es zu ganz merkwürdigen Anzeigen im Grid.
Teilweise werden Personen doppelt angezeigt und andere dafür gar nicht.
Teilweise wird nur ein Benutzer angezeigt bis ich ins Grid klicke, dann werden plötzlich wieder alle angezeigt.

Hat jemand ähnliche Erfahrung und/oder nen heißen Tipp für mich?

Des weiteren habe ich feststellen müssen, dass es kein AnsiLowerCase gibt.
Muss ich dazu etwas bestimmtes in die uses Klausel aufnehmen oder gibt es was vergleichbares?
Würde das halt gerne beim Filter auf das TEdit anweden, damit Groß- und Kleinschreibung ignoriert wird.

Geändert von Nils S. (19. Apr 2014 um 10:57 Uhr)
  Mit Zitat antworten Zitat