Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Listbox ->Zum Eintrag gehörende ID auswählen (https://www.delphipraxis.net/28187-listbox-zum-eintrag-gehoerende-id-auswaehlen.html)

plautzer 20. Aug 2004 16:09


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:
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;
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?

THx,

Plautzer

mytar 20. Aug 2004 16:13

Re: Listbox ->Zum Eintrag gehörende ID auswählen
 
=: !

Ich denke: := !

Delphi-Quellcode:
Q_gr.SQL.Add('Select * FROM gruppe.db WHERE Gruppe=:x');
greetz
mytar :)

Bowler 20. Aug 2004 16:18

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 =.

Bowler 20. Aug 2004 16:22

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:
x:=LB_id.Items[LB_id.ItemIndex];
holst.

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 Delphi-Referenz durchsuchenCreateParam.

Dann wundert es mich aber, dass der Fehler in der nächsten Zuweisung nicht kommt.

plautzer 20. Aug 2004 16:29

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

Die Muhkuh 20. Aug 2004 16:32

Re: Listbox ->Zum Eintrag gehörende ID auswählen
 
Mach mal noch ein CheckParam vor:

[/delphi]Q_vertrag.Params.ParamByName('p').AsFloat:= p;[delphi]

plautzer 20. Aug 2004 16:35

Re: Listbox ->Zum Eintrag gehörende ID auswählen
 
- noch ein zweites checkparam davorsetzen?
--> da macht doch keinen Sinn, oder?!?

Plautzer

Die Muhkuh 20. Aug 2004 16:39

Re: Listbox ->Zum Eintrag gehörende ID auswählen
 
Zitat:

Zitat von plautzer
- noch ein zweites checkparam davorsetzen?
--> da macht doch keinen Sinn, oder?!?

Plautzer

Du hasts ja noch nirgendwo stehen.


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.

Gruber_Hans_12345 20. Aug 2004 16:43

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:
Q_vertrag.SQL.Add('Select * FROM vertrag.db WHERE id =:p');
    Q_vertrag.Params.ParamByName('p').AsFloat:= p;
ist das wirklich ein Float Wert ?

Delphi-Quellcode:
Q_vertrag.SQL.Add('Select * FROM vertrag.db WHERE id =:p');
    Q_vertrag.Params.ParamByName('p').AsInteger := p;

plautzer 20. Aug 2004 16:54

Re: Listbox ->Zum Eintrag gehörende ID auswählen
 
Zitat:

Zitat von Spider
Mach mal noch ein CheckParam vor:

[/delphi]Q_vertrag.Params.ParamByName('p').AsFloat:= p;[delphi]

@Spider: sorry hatte was falsch verstanden;
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 03:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz