AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBComboBox-Einträge aus Tabelle laden
Thema durchsuchen
Ansicht
Themen-Optionen

DBComboBox-Einträge aus Tabelle laden

Ein Thema von CalganX · begonnen am 3. Mär 2005 · letzter Beitrag vom 4. Mär 2005
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

DBComboBox-Einträge aus Tabelle laden

  Alt 3. Mär 2005, 20:44
Datenbank: MySQL • Version: 4.x • Zugriff über: ZEOS
Hi,
ich habe jetzt mal versucht mit Hilfe der Zeos-Komponenten meinem Programm eine Datenbankanbindung zu verpassen. Soweit so gut.
Nun möchte ich eine Tabelle (languages) in einer DBComboBox anzeigen lassen (von allen Einträgen soll das Feld charName dort ein Item in der ComboBox sein). Das funktioniert nur in sofern, dass - wenn Style auf csDropDown steht - ein einziger Eintrag als Text für die ComboBox vorhanden ist, wenn ich jedoch Style auf csDropDownlist stelle, dann geht das nicht, denn dann steht nirgendwo der Inhalt der Tabelle.

Kann jemand von euch einem Datenbank-Anfänger ein wenig auf die Sprünge helfen?

Chris
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: DBComboBox-Einträge aus Tabelle laden

  Alt 4. Mär 2005, 09:03
Hi Chak,

das ist ein beliebter Fehler!
Die DBComboBox ist nicht dafür da, eine DB-Datenmenge als Items aufzunehmen, sondern, aus einer "manuell" eingegebenen Menge an Einträgen auszuwählen, um sie in das verbundene DB-Feld einzutragen!
Wenn du allerdings aus einer DB-Datenmenge auswählen willst, um sie in ein Feld einer anderen DB-Datenmenge einzutragen, dann benötigst du eine DBLookupComboBox.
Dritter Fall wäre, dass du bloß die Elemente einer DB-Datenmenge in eine ComboBox eintragen willst, um aus diesen in deiner Anwendung auszuwählen, ohne die Auswahl irgendwo in einer anderen Datenmenge zu speichern. Dann müsstest du deine Datenmenge durchlaufen und jeden Wert in deine ComboBox.Items schreiben.

MfG
Stevie
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: DBComboBox-Einträge aus Tabelle laden

  Alt 4. Mär 2005, 14:03
Hi Stevie,
ah...
Okay, darauf soll man aber ja auch erstmal kommen. *g*

Gut, für mich ist nur Fall 3 interessant, da aus der ComboBox eine Sprache (also ein Eintrag in der Datenbank) ausgewählt werden soll und dadurch eine neue SQL-Abfrage gestartet werden soll. Aber das sollte nicht das Problem sein.

Danke für deine Hilfe,
Chris
  Mit Zitat antworten Zitat
urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#4

Re: DBComboBox-Einträge aus Tabelle laden

  Alt 4. Mär 2005, 14:35
Ich glaube, das geht auch mit der DBLookupComboBox, indem man nur ListSource und ListField, nicht aber DataSource und DataField ausfüllt.
Dann liest die Kompo (glaube ich) die Daten aus der List-Tabelle (in Deinem Fall languages) ein, und Du kannst einen Item auswählen.

Viel Erfolg
Urs
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: DBComboBox-Einträge aus Tabelle laden

  Alt 4. Mär 2005, 15:02
Zitat von urs.liska:
Ich glaube, das geht auch mit der DBLookupComboBox, indem man nur ListSource und ListField, nicht aber DataSource und DataField ausfüllt.
Dann liest die Kompo (glaube ich) die Daten aus der List-Tabelle (in Deinem Fall languages) ein, und Du kannst einen Item auswählen.
Oh, stimmt, wieder was gelernt!
Also ListSource, ListField (das, was in dem Control angezeigt wird) und KeyField (der Wert, der in der anderen Datenmenge gespeichert würde, i.A. die ID) setzen und dann über DBLookupCompoBox.KeyValue den ausgewählten Wert holen.

P.S. Wenn man KeyField vergisst, dann kann man das Teil nicht aufklappen...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: DBComboBox-Einträge aus Tabelle laden

  Alt 4. Mär 2005, 17:07
Hi,
leider klappt das mit TDBLookupCombo bei mir so ganz, wie es sollte.
Zitat von Stevie:
Also ListSource, ListField (das, was in dem Control angezeigt wird) und KeyField (der Wert, der in der anderen Datenmenge gespeichert würde, i.A. die ID) setzen und dann über DBLookupCompoBox.KeyValue den ausgewählten Wert holen.
Habe bei mir (D2005) leider nur LookupSource und LookupField. Und wenn ich ersteres zu ordnen will (weise mein DataSource zu, weil ich nichts anderes auswählen kann), kommt der Fehler:
Zitat:
---------------------------
Fehler
---------------------------
LookupSource muss mit TTable-Komponente verbunden werden.
---------------------------
OK
---------------------------
Was tun?

Chris
  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 05:09 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