![]() |
ID aus Combobox auslesen
Hallo,
ich trage Tätigkeitsnamen + ID's aus einer Datenbank in eine Combobox:
Delphi-Quellcode:
jedes mal wenn ich einen anderen Eintrag in der Combobox selektiere, soll er mir anhand der zugehörigen ID alle Tätigkeiten anzeigen die dieser Tätigkeitsgruppe angehören.
procedure TForm1.FormCreate(Sender: TObject);
begin Panel1.Visible := False; with qTätigkeitgruppe do begin Active:=True; while not Eof do begin sname := FieldByName('Bezeichnung').AsString; ComboBox1.Items.AddObject(sName, TOBject(FieldByName('ID').AsInteger)); Next; end; end; end;
Code:
Meine Frage: Wie kann ich aus einem selektierten Eintrag die dazugehörige "Datenbank" ID auslesen?
qReportDaten.SQL.Text := 'SELECT * FROM TaetGruppen_Detail'+
' LEFT OUTER JOIN Taetigkeiten ON TaetGruppen_Detail.ID_Taetigkeiten = Taetigkeiten.ID'+ ' LEFT OUTER JOIN TaetGruppen ON TaetGruppen_Detail.ID_TaetGruppen = TaetGruppen.ID'+ ' WHERE ID_TaetGruppen = Hier soll die ID aus der Combobox übergeben werden;'; |
AW: ID aus Combobox auslesen
Vielleicht so?
Delphi-Quellcode:
ID := Integer(ComboBox.Items.Objects[ComboBox.ItemIndex]);
|
AW: ID aus Combobox auslesen
... und bitte den Wert dem SQL als Parameter übergeben... :zwinker:
Und noch ein Tipp: Dein + in jeder Zeile funktioniert bis die Stringlänge 255 überschreitet. (Ich meine mich zu erinnern) Diesem Problem kannst du aus dem Weg gehen wenn du jede neue Zeile (dient ja nur der Übersicht) mit Query.SQL.Add() hinzufügst. |
AW: ID aus Combobox auslesen
Beim kommenden 64-Bit-Compiler sind Pointer (64 Bit) keine Integer (32 Bit) mehr. Also Achtung bei Typecast, wenn er aufwärtskompatibel sein soll.
|
AW: ID aus Combobox auslesen
Vielen Dank für eure Info's und Tipps hat sowas alles funktioniert. Danke !
MfG David |
AW: ID aus Combobox auslesen
Zitat:
|
AW: ID aus Combobox auslesen
Zitat:
Und was hat das mit der IDE zu tun? |
AW: ID aus Combobox auslesen
Meine Güte, dann nenn es halt Sprachfeature oder was weiß ich. Es ging mir nur darum, dass ein String nicht auf 255 Zeichen begrenzt ist, so dass man bei längeren Strings auf das Add() ausweichen müsste, wie weiter oben behauptet wurde.
|
AW: ID aus Combobox auslesen
Und zu der Integer>Pointer>Integerumwandlung
Solange der Ursprungsinteger auch nur ein Integer ist, ist die Rückumwandlung vollkommen problemlos. Schließlich wächst nur der Zwischentyp, kann also mehr aufnehmen und es gehen nirgendwo Informationen verloren. |
AW: ID aus Combobox auslesen
Zitat:
![]() Ich hatte kein Wort darüber verloren, daß Informationen verloren gehen. Aber wo ist das Problem, bei einem Typecast statt Integer NativeInt zu schreiben und dafür einen sauberen Code zu bekommen? :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 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-2025 by Thomas Breitkreuz