mr_chrome - Mo 21.06.04 14:23
Titel: Probleme mit SelectSQL von TIBDataSet und LookUpField
Hallo,
ich stehe mal wieder vor einem für mich unerklärlichen Phänomen.
Grundsätzlich: Ich verwende InterBase 6.0 mit Delphi 7.0 und greife per IBX auf
die Datenbank zu.
Mein Problem.
Ich habe ein DBGrid zum Anzeigen der Datensätze einer Tabelle "t_produkte".
In der Tabelle gibt es ein Integer-Feld "kategorie_id", welches mit einer anderen Tabelle "t_kategorie" verknüpft ist, in welcher die Kategorie-Bezeichnungen eingetragen sind.
Um in meinem Grid nun nicht die Integer-Werte des Feldes "kategorie_id", sondern die Bezeichnungen der Kategorien zu sehen, hab' ich im IBDataSet für meine Tabelle ein LookUpFeld eingerichtet, welches im DBGrid angezeigt wird - bis hier her funktioniert alles problemlos.
Jetzt möchte ich die Tabelle nach der Kategorie filtern können. Dazu gibt es eine ComboBox, in der ich die Kategorien auswählen kann.
Angenommen ich wähle jetzte "Kategorie A" aus der ComboBox aus, dann wird folgender Code ausgegeben:
Delphi-Quelltext
1: 2: 3:
| DataSet_Produkte.Close; DataSet_Produkte.SelectSQL.Text := 'SELECT * FROM t_produkte WHERE kategorie_id = ' + WERT; DataSet_Produkte.Open; |
WERT ist in dem Fall der Integer-Wert der entsprechenden Kategorie.
Auch bis hierhin funktioniert alles wunderbar, ich erhalte immer nur die Datensätze der entsprechenden Kategorie.
Um wieder alle Daten zu sehen, hab' ich die Möglichkeit den Filter auszuschalten, damit wird folgendes ausgelöst:
Delphi-Quelltext
1: 2: 3:
| DataSet_Produkte.Close; DataSet_Produkte.SelectSQL.Text := 'SELECT * FROM t_produkte'; DataSet_Produkte.Open; |
Jetzt sehe ich wieder alle Datensätze, aber mein Kategorie LookUpFeld zeigt nicht mehr die Bezeichnungen der Kategorien an. Nur die zuletzt ausgewählte Kategorie Bezeichnung wird bei den entsprechenden Datensätzen angezeigt, bei allen Datensätze mit anderen Kategorie Bezeichnungen bleibt das Feld leer.
Ich führe nach den SelectSQL-Anweisungen ein Commit mit anschließenden neuen Aktivieren der Transaktion und DataSets aus. Hab' ich irgendwas vergessen? Refresh bringt auch nichts.
Ich hoffe mein Problem ist einigermaßen verständlich beschrieben.
Viele Grüsse,
Thomas