Thema: Delphi Combobox und Datenbank

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Combobox und Datenbank

  Alt 6. Nov 2006, 20:01
Hi,

wenn die ComboBox als Selektor für deine Datensätze herhalten soll, dann würde ich mir beim Befüllen der ComboBox.Items den Schlüssel des Spieler-Datensatzes merken. Das geht mit der Methode AddObject(). Angenommen es gibt ein eindeutiges Feld NICKNAME:

Delphi-Quellcode:
 
begin
  with ComboBox do
  begin
    Items.Clear;
    Query.SQL.Text := 'SELECT id, nickname FROM tbl ORDER BY nickname';
    Query.Open;
    while not Query.Eof do
    begin
      Items.AddObject(Query.FieldByName('NICKNAME').AsString, Pointer(Query.FieldByName('ID').AsInteger));
      Query.Next;
    end;
    Query.Close;
  end;
end;
Wenn du dann noch das Ereignis OnChange der ComboBox bedienst, dann kannst du deine Edit-Felder füllen:

Delphi-Quellcode:
procedure TDemoForm.ComboBox1Change(Sender: TObject);
begin
  with Sender as TComboBox do
    if (ItemIndex <> -1) then
    begin
      Query.SQL.Text := 'SELECT * FROM spieler WHERE id = :id';
      Query.Params.ParamByName('id').AsInteger := Integer(Items.Objects[ItemIndex]);
      Query.Open;
      NachnameEdit.Text := Query.FieldByName('NACHNAME').AsString;
      // ...
      Query.Close;
    end;
end;
Allerdings kannst du dir das Leben auch leichter machen, wenn du die datensensitiven Controls (TDBEdit) verwendest. Insbesondere, wenn du die Daten nicht nur Anzeigen, sondern auch verändern möchtest.

Getippt und nicht getestet.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat