Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

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

Re: Daten einer Tabelle in eine TComboBox einlesen?

  Alt 18. Sep 2005, 11: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