![]() |
Listbox ->Zum Eintrag gehörende ID auswählen
HI,
Ich habe in einer listbox verschiedene Einträge, per klick soll dann die dazugehörige ID rausgesucht werden und im dbgrid die dazugehöirgen beiträge angezeigt werden. ICh bekomme das nicht ganz hin, wäre spitze wenn ihr helfen könntet hier mein Code:
Delphi-Quellcode:
Wenn ich die Klammern weglasse, dann kommt ein zugriffsfehler und wenn ich sie lasse, dann git er immer die letzte ID wieder. Jm. ne Ahnung?
for i:= 0 to LB_id.Items.Count -1 Do
Begin if LB_id.Selected[i] then begin x:=LB_id.Items[i]; { Q_gr.Close; Q_gr.SQL.Clear; Q_gr.SQL.Add('Select * FROM gruppe.db WHERE Gruppe=:x'); Q_gr.Params.ParamByName('x').Value:= x; Q_gr.Prepared:= True; Q_gr.ExecSQL; } p:=Q_gr.Fieldbyname('ID').AsInteger; Q_vertrag.Close; Q_vertrag.SQL.Clear; Q_vertrag.SQL.Add('Select * FROM vertrag.db WHERE id =:p'); Q_vertrag.Params.ParamByName('p').AsFloat:= p; Q_vertrag.Prepared:= True; Q_vertrag.ExecSQL; Q_vertrag.Active:=true; end; end; end; THx, Plautzer |
Re: Listbox ->Zum Eintrag gehörende ID auswählen
=: !
Ich denke: := !
Delphi-Quellcode:
greetz
Q_gr.SQL.Add('Select * FROM gruppe.db WHERE Gruppe=:x');
mytar :) |
Re: Listbox ->Zum Eintrag gehörende ID auswählen
nope, das ist schon richtig.
In SQL-Statements werden Parameter in der Form :<Parametername> angegeben. Der Doppelpunkt gehört zum Parameter und nicht zum =. |
Re: Listbox ->Zum Eintrag gehörende ID auswählen
So, mal schauen, ob ich das richtig verstanden habe.
Du hast eine Listbox mit einiges Einträgen. Wenn der User auf einen Eintrag klickt, dann soll der String in die Variable X kopiert werden, richtig? Da wäre es IMHO einfacher, wenn du das ganze in das OnClick-Ereignis der Listbox schreibst, und dir den markierten Eintrag einfach mit
Delphi-Quellcode:
holst.
x:=LB_id.Items[LB_id.ItemIndex];
Dann hast du den schonmal on X stehen. Zum Zugriffsfehler: Kann es sein, dass du den Parameter vorher nicht angelegt hast? Schaue dort mal on der OH nach ![]() Dann wundert es mich aber, dass der Fehler in der nächsten Zuweisung nicht kommt. |
Re: Listbox ->Zum Eintrag gehörende ID auswählen
HI,
an dem X liegt es nicht, das funzt eigentlich ganz gut. Ich habe in der Listbox alle einträge der zweiten spalte der Tabelle Gruppe. Beim anklicken soll einfach die dazugehörige heruasgesucht werden -> also die ID an stelle X Oh, und wenn auch die klammern weglasse und einen eintrag in de rlistbox anklicke dann kommt die fehlermeldung, dass das feld ID nicht gefunden wurde obwohl es existiert! Plautzer |
Re: Listbox ->Zum Eintrag gehörende ID auswählen
Mach mal noch ein CheckParam vor:
[/delphi]Q_vertrag.Params.ParamByName('p').AsFloat:= p;[delphi] |
Re: Listbox ->Zum Eintrag gehörende ID auswählen
- noch ein zweites checkparam davorsetzen?
--> da macht doch keinen Sinn, oder?!? Plautzer |
Re: Listbox ->Zum Eintrag gehörende ID auswählen
Zitat:
Delphi-Quellcode:
Q_vertrag.Close;
Q_vertrag.SQL.Clear; Q_vertrag.SQL.Add('Select * FROM vertrag.db WHERE id =:p'); Q_vertrag.CheckParams := true; Q_vertrag.Params.ParamByName('p').AsFloat:= p; Q_vertrag.Prepared:= True; Q_vertrag.ExecSQL; Ausserdem schreib lieber statt ExecSQL mal Open. Mit ExecSQL entfernt man Datensätze, oder fügt neue ein. |
Re: Listbox ->Zum Eintrag gehörende ID auswählen
was ist Gruppe in der gruppe.db für ein FeldTyp ?
was steht in der ListBox genau drinnen ?
Delphi-Quellcode:
ist das wirklich ein Float Wert ?
Q_vertrag.SQL.Add('Select * FROM vertrag.db WHERE id =:p');
Q_vertrag.Params.ParamByName('p').AsFloat:= p;
Delphi-Quellcode:
Q_vertrag.SQL.Add('Select * FROM vertrag.db WHERE id =:p');
Q_vertrag.Params.ParamByName('p').AsInteger := p; |
Re: Listbox ->Zum Eintrag gehörende ID auswählen
Zitat:
Brachte aber auch keine veränderung mit sich. Er kann das feld ID nicht finden. @Hans In der listbox stehen die werte aus der zweiten Spalte(Gruppe) von tabelle GRuppe.db und in dem grid die daten aus Vertrag.db Gruppe.db: Gruppe ist ein normales string feld (A) ID ist ein zähler, also integer (I): Vertrag.db ID ist Integer(I); Plautzer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 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