![]() |
Datenbank: ABS • Version: 488 • Zugriff über: Datascore
Daten einer Tabelle in eine TComboBox einlesen?
Ich möchte gern alle Daten eines Feldes von einer Tabelle in eine TComboBox einlesen. Wie machtman das?
|
Re: Daten einer Tabelle in eine TComboBox einlesen?
Zitat:
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; |
Re: Daten einer Tabelle in eine TComboBox einlesen?
Hallo Stephan!
also ist der eigentliche Punkt um Felder aus zu lesen ?
Delphi-Quellcode:
String := ABSTable1.FieldByName('Feld1').AsString;
|
Re: Daten einer Tabelle in eine TComboBox einlesen?
Zitat:
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; |
Re: Daten einer Tabelle in eine TComboBox einlesen?
Zitat:
|
Re: Daten einer Tabelle in eine TComboBox einlesen?
Zitat:
Ich verstehe jetzt nicht ganz was Du meinst. |
Re: Daten einer Tabelle in eine TComboBox einlesen?
Zitat:
|
Re: Daten einer Tabelle in eine TComboBox einlesen?
Zitat:
aber warum nimmst Du überhaupt eine (ABS)Table und kein (ABS)Query? Das finde ich, gerade für solch einen Fall, viel besser! |
Re: Daten einer Tabelle in eine TComboBox einlesen?
Zitat:
|
Re: Daten einer Tabelle in eine TComboBox einlesen?
Zitat:
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:
SQL-Code:
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.
SELECT feld1 FROM tabellename WHERE ID = 1
Um zu deinem Fall zu kommen:
Delphi-Quellcode:
Wir wissen das der Fielinex 0 sein muss weil wir ja nur ein Feld aus der Tabelle zurückgebenlassen.
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz