Hallo,
weiß gar nicht wie ich das Thema richtig nennen soll. Auf jeden Fall ich hab hier eine Sache wo ich nicht mehr weiter komme. Ich lade wie folgt aus einer
DB-Tabelle den Namen und die ID eines Autors in eine ComboBox. Nun möchte ich das so haben, dass der ItemIndex der ComboBox das ist wo im Object die "id_author" steht. Wie mache ich das nur?
z.B. hier der Inhalt der ComboBox:
0, leere Zeile
1, Herr Werber (1 ist die id_author, also in der ersten Spalte stehen die IDs, außer der 0)
2, Frau Merkl
5, Herr Nold
Nun soll der Autor mit der ID 5 angezeigt werden, die ItemIndex soll also die 3 sein. Wie erfahre ich also, dass die 5 in der dritten Zeile steht?
Danke für eure Hilfe!
Delphi-Quellcode:
// Datensaetze der Tabelle author holen
Form2.AuthorComboBox.Clear;
Form2.AuthorComboBox.Items.AddObject('
', TObject(0));
tb :=
db.GetTable('
SELECT * FROM author');
try
if tb.Count > 0
then
begin
while not tb.EOF
do
begin
Form2.AuthorComboBox.Items.AddObject(tb.FieldAsString(tb.FieldIndex['
aname']), TObject(tb.FieldAsInteger(tb.FieldIndex['
id_author'])));
tb.Next;
end;
end;
finally
tb.Free;
end;
...
// Datensatz der Tabelle media holen
tb :=
db.GetTable('
SELECT * FROM media WHERE id_media='+idinb+'
');
try
if tb.Count > 0
then
begin
// Das war bisher und ist falsch!!!!
Form2.AuthorComboBox.ItemIndex := tb.FieldAsInteger(tb.FieldIndex['
fk_author_id']);
// Hier will ich es richtig machen, aber es knallt...
Form2.AuthorComboBox.ItemIndex := hier möchte ich den Autor mit der fk_author_id=5 anzeigen, also den Herrn Nold
end;
finally
tb.Free;
end;
...