AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ComboBox mit Daten einer SQL-Abfrage füllen
Thema durchsuchen
Ansicht
Themen-Optionen

ComboBox mit Daten einer SQL-Abfrage füllen

Ein Thema von Coder18 · begonnen am 17. Mai 2004 · letzter Beitrag vom 17. Mai 2004
Antwort Antwort
Benutzerbild von Coder18
Coder18

Registriert seit: 5. Jun 2003
Ort: Hannover
92 Beiträge
 
#1

ComboBox mit Daten einer SQL-Abfrage füllen

  Alt 17. Mai 2004, 14:20
Hallo Allezusammen!

ich bins schon wieder.
Hab ein kleines Problem mit dem Füllen einer ComboBox mit Daten aus einer SQL-Abfrage:

Zur Erklärung ich hab auf meinem Formular eine Datenbank-Tabelle in der mehrere Daten
(Mehrzahl von Datum) in einer Spalte stehen. Diese Daten möchte ich ,nachdem ich Sie per
SQL-Anweisung gruppiert habe, zu einer ComboBox hinzufügen.

Die SQL-Anweisung sieht folgendermaßen aus:

Delphi-Quellcode:
Select Aus_Name As Name, Aus_Datum As Datum
from "W:\Jagusch\FSystem\Fragesystem21_Echt\DB\Auswertung.db"
Where Aus_Name = "Max"
Group By Aus_Name,Aus_Datum;
Diese Anweisung funktioniert auch so wie ich es wollte.

Die Probleme liegen bei der Umsetzung in Delphi. Der Code dazu sieht so aus:

Delphi-Quellcode:
With Query1 do begin
     Active := False;
     SQL.Add('Select Aus_Name As Name, Aus_Datum As Datum');
     SQL.Add('From Tabelle1');
     SQL.Add('Where Aus_Name = "Max"');
     SQL.Add('Group By Aus_Name, Aus_Datum');
     Open;
     ComboBox1.Items.Add(FieldByName('Datum').As String); //Hier liegt das Problem
     Active := False;
end;
Wenn ich den Code so ausführe wird immer nur ein Datum in der ComboBox angezeigt.
Was mache ich falsch?

Danke und Gruß

Tim
Das wirksamste Mittel gegen Kopfschmerzen ist die Guillotine.
-
"Der Kunde ist nicht König, sondern Gott. Könige sind Menschen und können daher Fehler machen - ein Gott aber macht keine Fehler" - Der Gründer der Matsushita Electric Industries
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

Re: ComboBox mit Daten einer SQL-Abfrage füllen

  Alt 17. Mai 2004, 14:24
Wenn du die Datenmenge öffnest, dann wird der Datencursor im Dataset auf den ersten Satz gelegt. Du musst selber durch die Datenmenge iterieren:

Delphi-Quellcode:
Query1.Open;
while not Query1.Eof do
begin
  ComboBox1.Items.Add(FieldByName('Datum').As String);
  Query1.Next;
end;
Query1.First; //Setzt den Cursor wieder auf die Ausgangsposition
P.S. zu lahm
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: ComboBox mit Daten einer SQL-Abfrage füllen

  Alt 17. Mai 2004, 14:25
Hallo,
wie wäre es damit:
Delphi-Quellcode:
With Query1 do begin
     Active := False;
     SQL.Add('Select Aus_Name As Name, Aus_Datum As Datum');
     SQL.Add('From Tabelle1');
     SQL.Add('Where Aus_Name = "Max"');
     SQL.Add('Group By Aus_Name, Aus_Datum');
     Open;
     While Not EOF do
       begin
       ComboBox1.Items.Add(FieldByName('Datum').As String); //Hier liegt das Problem
       Next;
       end;
     Active := False;
end;
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: ComboBox mit Daten einer SQL-Abfrage füllen

  Alt 17. Mai 2004, 14:25
Delphi-Quellcode:
begin
  ComboBox1.Clear // Vorher immer brav die ComboBox leeren
  With Query1 do begin
     Active := False;
     SQL.Add('Select Aus_Name As Name, Aus_Datum As Datum');
     SQL.Add('From Tabelle1');
     SQL.Add('Where Aus_Name = "Max"');
     SQL.Add('Group By Aus_Name, Aus_Datum');
     Open;
     First; // Gehe zum ersten Datensatz
     While Not (Eof) do //Gibt es noch Datensätze
     begin
       ComboBox1.Items.Add(FieldByName('Datum').As String); //Hier liegt das Problem
       Next; // Gehe zum nächsten Datensatz.
     end;
     Active := False;
  end;
end;
[Edit]Und wieder war ich zu langsam Dafür habe ich schöne kommentare [/edit]
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Coder18
Coder18

Registriert seit: 5. Jun 2003
Ort: Hannover
92 Beiträge
 
#5

Re: ComboBox mit Daten einer SQL-Abfrage füllen

  Alt 17. Mai 2004, 14:33
Vielen Dank an alle!
Die Lösung ist perfekt, genau das was ich gesucht habe!
Das wirksamste Mittel gegen Kopfschmerzen ist die Guillotine.
-
"Der Kunde ist nicht König, sondern Gott. Könige sind Menschen und können daher Fehler machen - ein Gott aber macht keine Fehler" - Der Gründer der Matsushita Electric Industries
  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 22:49 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