Einzelnen Beitrag anzeigen

SMALLID

Registriert seit: 10. Aug 2004
78 Beiträge
 
#1

ZQuery mit Daten aus anderem DataSet füttern (2 ZQrs verkn.)

  Alt 12. Nov 2007, 13:33
Datenbank: MySQL • Version: 4.1 • Zugriff über: ZeosLib
Hello,

folgendes "Problem":

Ich habe eine Client-Anwendung, die über die Zeos-Komponenten auf eine MySQL Datenbank zugreift. Im Hauptfenster der Anwendung habe ich eine ZTable und zwei ZQueries mit folgender Verknüpfung platziert:

ZConnection1 <--- ZTable1 <--- DataSource1 <--- ZRestrictionQuery <--- DataSource2 <--- ZDisplayQuery

Die beiden Queries haben ebenfalls eine Eigenschaft "Connection", die ich auch auf ZConnection1 setzen muss, da sonst eine Ausnahme mit einem entsprechenden Hinweis kommt, dass diese Eigenschaft doch bitte gesetzt werden soll. Die Eigenschaft "DataSource" der jeweiligen DataSet-Komponente ist auf das oben jeweils vorliegend gezeigte DataSource gesetzt, um - so der Gedanke - die Datenmenge, mit der das DataSet arbeitet, entsprechend auf vorherliegende Datenmenge zu beschränken.

Anyway, was ich konkret machen will, ist folgendes: Ich habe am Anfang der Anwendung einen kleinen Login-Dialog. Je nach dem, wer sich einloggt, soll die Abfrage in ZRestrictionQuery.SQL geändert werden, sodass idealerweise ZDisplayQuery nur mit den Daten arbeitet, die der Nutzer sehen "darf". ZDisplayQuery ist dann für das normale arbeiten (mit suchen, etc.) innerhalb dieser eingeschränkten Menge von Daten zuständig.

Nur leider zeigt mir ZDisplayQuery mehr an, als es soll. Ein Beispiel:

ZRestrictionQuery.SQL sagt:

SELECT * FROM Table1 WHERE Col1 = Valx; ZDisplayQuery sagt initial einfach:

SELECT * FROM Table1 Nun scheint es so zu sein, dass nur diese letzte Abfrage zählt und er mir eben alle Daten aus Table1 anzeigt. Meine Hoffnung war aber vielmehr, dass mit dem Setzen der Eigenschaft "DataSource" von ZDisplayQuery auf DataSource2 nur die Daten für die SQL-Abfrage verwendet werden, die mir von ZRestrictionQuery auch zur Verfügung gestellt werden.

Hmm, mache ich was falsch? Habe ich einen Denkfehler gemacht? Wenn ihr mehr Infos braucht, bitte melden. Ist echt ein ärgerliches Problem
Muh
  Mit Zitat antworten Zitat