Hallo,
ich habe ein Problem mit einer DBLookupComboBox. Die Eigenschaften ListSource und ListField sind gesetzt (es sollen nur Daten aus einer Datenbank angezeigt werden). Wenn ich zur Laufzeit die Verbindung zur Datenbank herstelle (mittels Datasource und SQLQuery), dann bleibt die DBLookupComboBox leer. Stelle ich mit dem selben SQL Befehl (select * from ...) die Verbindung über den Objektinspektor her (zur Entwicklungszeit), dann funktioniert es. Bin ich nur zu blöd oder könnte da ein Bug seine Finger im Spiel haben? Ich habe schon alles ausprobiert, was mir eingefallen ist (geänderter SQL Befehl, separate Transaktions-Komponente, Verlagerung in andere Unit, ...), jedoch ohne Erfolg. Das Anzeigen einer Abfrage in einem DBGrid geht ohne Probleme, nur die DBLookupComboBox will mir keine Daten anzeigen.
Der Vollständigkeit halber: Lazarus (aktuelles SVN) 64 Bit mit qt Einstellungen, FPC 2.4.0 RC, Firebird 2.1, Zugriff mittels SQLdb-Komponenten
Ich bin für jede Anregung dankbar.
knight
Nachtrag: Dank fremder Hilfe habe ich eine Lösung für das Problem (falls mal ein anderer darauf stößt): Nachdem die SQLQuery aktiviert wird, muß die ListSource Eigenschaft von DBLookupComboBox nochmal im Quelltext gesetzt werden. Dann klappt es auch mit der Auswahl.
knight
Problem mit DBLookupComboBox (erl.)
Re: Problem mit DBLookupComboBox (erl.)
Hallo,
mein Problem war grade fast genauso. Habe jetzt über nen Tag nur an der Sache gesessen und ich dachte ich schreibe mal meine Sicht und Lösung dazu.
Mein System: Lazarus 0.9.34 32Bit auf Windows 7, FPC 2.6.0, Firebird 2.1.5.
Die Datenbankverbindung habe ich mit den sqldb Komponenten hergestellt.
Hab dafür natürlich 2 sql Queries genutzt, welche daten aus 2 verschiedenen Tabellen holen. NavigatorKomponente und TDBGrid durften natürlich auch nicht fehlen, sowie natürlich die LookupComboBox um die es ja geht. Nun hatte ich das Problem, dass zur Entwurfszeit zwar Daten in der LookupCombobox angezigt wurden, diese jedoch während der Laufzeit leer blieb.
Nach einigem probieren. Dann schließlich:
So klappts dann auch mit dem Nachbarn
Ich hoffe das hilft jemand der auch Probleme mit der LookUpCombobox hat.
PS.: Gibt es da vlt noch andere Möglichkeiten oder andere Lösungen?
mein Problem war grade fast genauso. Habe jetzt über nen Tag nur an der Sache gesessen und ich dachte ich schreibe mal meine Sicht und Lösung dazu.
Mein System: Lazarus 0.9.34 32Bit auf Windows 7, FPC 2.6.0, Firebird 2.1.5.
Die Datenbankverbindung habe ich mit den sqldb Komponenten hergestellt.
Hab dafür natürlich 2 sql Queries genutzt, welche daten aus 2 verschiedenen Tabellen holen. NavigatorKomponente und TDBGrid durften natürlich auch nicht fehlen, sowie natürlich die LookupComboBox um die es ja geht. Nun hatte ich das Problem, dass zur Entwurfszeit zwar Daten in der LookupCombobox angezigt wurden, diese jedoch während der Laufzeit leer blieb.
Irgendwann hatte ich herausgefunden, dass wenn ich in der Navigator-Komponente auf Editieren und anschließend auf Post klicke plötzlich Daten angezigt wurden. Dann stieß ich irgendwann auf diesen Thread dachte mir ok im Code ändern, aber wenn ich im Code das Query ja gar nicht aktiviere wie dann.Nachtrag: Dank fremder Hilfe habe ich eine Lösung für das Problem (falls mal ein anderer darauf stößt): Nachdem die SQLQuery aktiviert wird, muß die ListSource Eigenschaft von DBLookupComboBox nochmal im Quelltext gesetzt werden. Dann klappt es auch mit der Auswahl.
Nach einigem probieren. Dann schließlich:
Code: Alles auswählen
procedure Tfirebird_test.FormShow(Sender: TObject);
begin
DBLookupComboBox1.ListSource:=Datasource2;
end;
So klappts dann auch mit dem Nachbarn

Ich hoffe das hilft jemand der auch Probleme mit der LookUpCombobox hat.
PS.: Gibt es da vlt noch andere Möglichkeiten oder andere Lösungen?