AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Daten einer Tabelle in eine TComboBox einlesen?
Thema durchsuchen
Ansicht
Themen-Optionen

Daten einer Tabelle in eine TComboBox einlesen?

Ein Thema von smart · begonnen am 18. Sep 2005 · letzter Beitrag vom 7. Feb 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#1

Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 10:54
Datenbank: ABS • Version: 488 • Zugriff über: Datascore
Ich möchte gern alle Daten eines Feldes von einer Tabelle in eine TComboBox einlesen. Wie machtman das?
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 11:07
Zitat von smart:
Ich möchte gern alle Daten eines Feldes von einer Tabelle in eine TComboBox einlesen. Wie machtman das?
Hai Heike,

Du musst einfach durch alle Einträge der Tabelle gehen und den Feldinhalt den Items der ComboBox hinzufügen.
Wenn Du in der Tabelle auch ein ID-Feld hast und dieses für weitere Verknüpfungen benötigst kannst Du diese über ein Typcasting auf ein TObject an den Eintrag knüpfen.
Delphi-Quellcode:
procedure TForm1.btn_FillComboBoxClick(Sender: TObject);
var
  inhalt : string;
  id : integer;
begin
  ComboBox1.Clear;
  with ABSTable1 do
  begin
    First;
    while not (Eof) do
    begin
      inhalt := FieldByName('feldname').AsString;
      id := FieldByName('idfeld').AsInteger;
      ComboBox1.Items.Add(inhalt);
// ComboBox1.Items.AddObject(inhalt,TOBject(id)); // Mit ID-Feld
      Next;
    end;
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 11:34
Hallo Stephan!

also ist der eigentliche Punkt um Felder aus zu lesen ?
String := ABSTable1.FieldByName('Feld1').AsString;
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 11:37
Zitat von smart:
... also ist der eigentliche Punkt um Felder aus zu lesen ?
Jup.
Wenn Du genau weisst in welcher Reihenfolge die Felder in deinem TDataSet stehen kannst Du auch über den Fieldindex daraufzugreifen (ist schneller).
Delphi-Quellcode:
inhalt_Feld1 := Fields[0].AsString;
inhalt_Feld2 := Fields[1].AsString;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 11:49
Zitat von Sharky:
Delphi-Quellcode:
inhalt_Feld1 := Fields[0].AsString;
inhalt_Feld2 := Fields[1].AsString;
Ja, aber das geht dann nicht wenn mehr als ein Feld in der Tabelle ist, oder?
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 11:51
Zitat von smart:
... Ja, aber das geht dann nicht wenn mehr als ein Feld in der Tabelle ist, oder?

Ich verstehe jetzt nicht ganz was Du meinst.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 11:54
Zitat von Sharky:
Zitat von smart:
... Ja, aber das geht dann nicht wenn mehr als ein Feld in der Tabelle ist, oder?

Ich verstehe jetzt nicht ganz was Du meinst.
Wenn jetzt mehr als ein Feld in der Tabelle ist, Brauche aber zum auswerten nur ein Feld dann muss ich ja den Feldname angeben können, Oder?
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 11:56
Zitat von smart:
... Brauche aber zum auswerten nur ein Feld dann muss ich ja den Feldname angeben können, Oder?
Jo,
aber warum nimmst Du überhaupt eine (ABS)Table und kein (ABS)Query? Das finde ich, gerade für solch einen Fall, viel besser!
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 12:23
Zitat von Sharky:
Jo,
aber warum nimmst Du überhaupt eine (ABS)Table und kein (ABS)Query? Das finde ich, gerade für solch einen Fall, viel besser!
Ich hatte immer den Eindruck, dass eine Tabelle schneller ist. Ich kenne mich mit Query auch noch nicht so gut aus. Habe schon mal das eine oder andere File geschossen. (Bitte nicht lachen).
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 12:35
Zitat von smart:
... dass eine Tabelle schneller ist.
Nun ja, bei der ABS ist das nicht sooo wichtig. Aber bei einem richtigen DB-Server würdest Du es ganz schnell merken.
Eine TTable überträgt immer alle Felder und alleZeilen einer Tabelle zum Client. Filterungen finden dann lokal (beim Client stat).
Wenn Du also eine Tabelle in der Datenbank hast die pro Datensatz 1 kByte belegt und es sind 1000 Datensätze vorhanden wird immer 1 MegaByte vom Server zum Client übertragen. Auch dann wenn Du viele der Daten überhaupt nicht benötigst.

Bei einem TQuery wird genau das zum Client gesendet was Du vom Server haben möchtest. Wenn Du zum Beispiel:
SELECT feld1 FROM tabellename WHERE ID = 1 an den Server sendest (ID ist ein PK) dann bekommst Du exakt ein Feld (und halt nur die Datenmeng welches es belegt) vom Server zurück.

Um zu deinem Fall zu kommen:
Delphi-Quellcode:
procedure TForm1.btn_FillComboBoxClick(Sender: TObject);
var
  inhalt : string;
begin
  ComboBox1.Clear;
  with ABSQuery1 do
  begin
    Close;
    SQL.Text := 'SELECT feld1 FROM tabelle ORDER BY feld1';
    Open
    First;
    while not (Eof) do
    begin
      inhalt := Fields[0].AsString; // Wir wissen das es Feld 0 sein muss!
      ComboBox1.Items.Add(inhalt);
      Next;
    end;
    Close;
  end;
end;
Wir wissen das der Fielinex 0 sein muss weil wir ja nur ein Feld aus der Tabelle zurückgebenlassen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:10 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