AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MasterSource und Filter gleichzeitig möglich
Thema durchsuchen
Ansicht
Themen-Optionen

MasterSource und Filter gleichzeitig möglich

Ein Thema von MrSpock · begonnen am 16. Jan 2007 · letzter Beitrag vom 17. Jan 2007
Antwort Antwort
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#1

MasterSource und Filter gleichzeitig möglich

  Alt 16. Jan 2007, 21:42
Datenbank: Firebird • Version: 2.0 • Zugriff über: TIBTable
Hallo,

wenn ich eine Detailtabelle habe, deren Eigenschaften MasterSource ich so setze, dass die passenden Datensätze zur MasterSource ausgewählt werden, kann ich dann eigentlich ZUSÄTZLICH noch einen Filter setzen? (Dabei ist es jetzt weniger interessant, ob das ein guter Programmierstiel ist [ist es nämlich nicht], sonderen nur, ob es möglich ist, oder ob der Filter die MasterSource überschreibt.)
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: MasterSource und Filter gleichzeitig möglich

  Alt 17. Jan 2007, 06:48
Hallo Albert,

nach meinen Quellen werden die Prädikate der Filter-Property vor den Prädikaten der LinkFields (MasterSource) in das interne SELECT-Statement eingebaut.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3

Re: MasterSource und Filter gleichzeitig möglich

  Alt 17. Jan 2007, 12:57
Hallo marabu,

werden die Bedingungen dann "verundet"?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
shmia

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

Re: MasterSource und Filter gleichzeitig möglich

  Alt 17. Jan 2007, 13:17
Du kannst auf jeden Fall das Event OnFilterRecord benützen.
Zusätzlich muss dann Filtered auf True gesetzt werden.
Das Property Filter bleibt dann leer.
Da der Filter nur lokal in deiner Anwendung wirkt, werden natürlich auch die ausgefilterten Datensätz aus der Datenbank gelesen.
=> Unter Umständen schlechte Performance, aber es funtioniert.
Andreas
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: MasterSource und Filter gleichzeitig möglich

  Alt 17. Jan 2007, 18:30
Hi,

Zitat von MrSpock:
werden die Bedingungen dann "verundet"?
gute Frage - Antwort: Ja.

Für die Klammerung im Filterausdruck bist du selbst verantwortlich. Insbesondere setzt der SQL-Generator keine Klammern um den gesamten Filterausdruck.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#6

Re: MasterSource und Filter gleichzeitig möglich

  Alt 17. Jan 2007, 19:54
Hallo marabu,

genau das war das Problem.

Ich hatte einen Filterausdruck in der Form:

Filter := '(Grp=1) or (Grp=-1)'; Dann wurden mir alle Datensätze angezeigt, obwohl dieser Filter auf eine Detailtabelle saß, die bereits durch eine Mastersource eingeschränkt war.

Nachdem ich den Ausdruck neu geklammert habe:

Filter := '((Grp=1) or (Grp=-1))'; hat es funktioniert. Da soll jemand drauf kommen.
Albert
Live long and prosper


MrSpock
  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 11:02 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