Autor Beitrag
loriot
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 10.11.08 21:53 
Ich möchte eine ComboBox mit Attributwerten einer Spalte einer Tabelle aus einer MySQL Datenbank füllen. Der Nutzer des Programms soll dann z.B. einen Namen auswählen können und in einem DBGrid etwa die Adressdaten dieses Namens angezeigt bekommen (das aber später-jetzt erstmal das Anzeigen aller Namen).

Bei mir zeigt es stets nur den ersten Datensatz aus der tabelle an und nicht alle.

for j:=1 to Table1.RecordCount do
Table1.First;
ComboBox1.Items.add(Table1.FieldByName('Name').AsString);
Table1.Next;


Table1 ist die Tabelle, wo die Namen in der DB drin stehen.

DANKE!!!
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 10.11.08 22:00 
1. Delphi TAGs hier im Forum verwenden
2. begin und end fehlen
3. Wieso "Table1.First" IN der Schleife?! Kein Wunder, dass nur der erste angezeigt wird.
4. Gibt ne Komponente namens "DBCombobox" oder so ähnlich - die macht das soweit ich weiß schon automatisch.

_________________
PROGRAMMER: A device for converting coffee into software.
loriot Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 10.11.08 22:12 
var j:integer;
begin
Table1.first;
for j:=0 to Table1.RecordCount-1 do
begin
ComboBox1.Items.add(Table1.FieldByName('Name').AsString);
Table1.Next;
end;
end;

Erledigt - DANKE!
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 10.11.08 22:15 
Bleiben noch die Puntke 1 und 4 ;)

_________________
PROGRAMMER: A device for converting coffee into software.
loriot Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 10.11.08 23:03 
Zu Punkt 1 - Ich bin (leider) absoluter Newbie ! Wie geht das?


Ich möchte jetzt den ausgewählten Attributwert an den Query geben:


procedure TForm1.ComboBox1Change(Sender: TObject);
var i:integer;
begin
Query1.Active:=false;
Query1.SQL:=
'Select Geburtsdatum, Ort, Telefon FROM Freunde WHERE Name='
+ComboBox1.items.text[ComboBox1.itemindex];
Query1.Active:=true;
end;


Doch ich bekomme den Fehler:
[Fehler] Unit1.pas(54): Inkompatible Typen: 'TStrings' und 'String'

Kannst du mir bitte nochmal helfen.

zu Punkt 4 - In der DBComboBox wird auch nur ein Wert angezeigt

DANKE!!!
loriot Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 10.11.08 23:17 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
 procedure TForm1.ComboBox1Change(Sender: TObject); 
var i:integer; 
begin 
Query1.Active:=false; 
Query1.SQL.text:= 
'Select Geburtsdatum, Ort, Telefon FROM Freunde WHERE Name=' 
+ComboBox1.items.text[ComboBox1.itemindex]; 
Query1.Active:=true; 
end;



funktioniert
Grüße!


Zuletzt bearbeitet von loriot am Di 11.11.08 22:48, insgesamt 2-mal bearbeitet
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Di 11.11.08 00:50 
Hnnng..
[ Delphi] [ /Delphi]
ohne Leerzeichen in den Klammern:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure test;
begin
  ShowMessagE('So funktionieren Delphi TAGs');
end;


Funktioniert das nun?

Und mit DBCombobox meinte ich: Da muss man normalerweise keinen Quellcode selber schreiben - man stellt einfach nur die Datenbank + Spalte ein, und die wird automatisch gefüllt.

_________________
PROGRAMMER: A device for converting coffee into software.
loriot Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Di 11.11.08 22:47 
Ja - funktioniert jetzt! - Danke für den Tipp mit den Tags!

Mit der DBCombobox habe ich das Problem, dass immer nur der erste Wert in der ausgewählten Spalte angezeigt wird - egal ob DragMode auf Manual oder Automatic steht - im Gegensatz zur DBLookupComboBox - dort geht das wunderbar.
Scheint also eine Eigenschaft bei der DBComboBox zu geben, die man erst aktivieren muss - ich habs jetzt über die normale ComboBox mit obigem Quelltext gelöst.

Grüße und nochmal sorry für die fehlenden Tags...