Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Sql Abfrage (https://www.delphipraxis.net/114439-sql-abfrage.html)

benny 25. Mai 2008 16:17


Sql Abfrage
 
untere Select-Anweisung
close;
sql.clear;
sql.add('Select NameBez from PersonStam where PersonId=PersonNr');
open;
liefert mir beim Ausführen des Programms die Fehlermeldung "ungültiger Feldname: PersonNr". Die Variable "PersonNr" ist definiert (Typ string) und mit einen Wert belegt. Ersetze ich "PersonNr" durch einen statischen Wert, funktioniert sie einwandfrei. Was ist falsch dabei ?

benny

Matze 25. Mai 2008 16:19

Re: Sql Abfrage
 
Hallo,

es müsste sicher so heißen:

Delphi-Quellcode:
sql.add('Select NameBez from PersonStam where PersonId=' + PersonNr);
Grüße

grenzgaenger 25. Mai 2008 16:20

Re: Sql Abfrage
 
Zitat:

Zitat von benny
untere Select-Anweisung
close;
sql.clear;
sql.add('Select NameBez from PersonStam where PersonId=PersonNr');
open;
liefert mir beim Ausführen des Programms die Fehlermeldung "ungültiger Feldname: PersonNr". Die Variable "PersonNr" ist definiert (Typ string) und mit einen Wert belegt. Ersetze ich "PersonNr" durch einen statischen Wert, funktioniert sie einwandfrei. Was ist falsch dabei ?

benny

ps: setze doch deinen code in DELPHI tags

zu deinem problem, hier hast du zwei möglichkeiten

a) du verwendest variablen
Delphi-Quellcode:
close;
sql.clear;
sql.add('Select NameBez from PersonStam where PersonId=:PersonNr');
open;
oder b)
du konvertierst das erst mal in 'n ordentliches format, z.b. bei 'n string:
Delphi-Quellcode:
close;
sql.clear;
sql.add('Select NameBez from PersonStam where PersonId=' + quotedstr(PersonNr) + ';');
open;
oder bei einer zahl:
Delphi-Quellcode:
close;
sql.clear;
sql.add('Select NameBez from PersonStam where PersonId=' + inttostr(PersonNr) + ';');
open;

DeddyH 25. Mai 2008 16:28

Re: Sql Abfrage
 
Wobei Lösung a) vorzuziehen ist ;)

mkinzler 25. Mai 2008 16:29

Re: Sql Abfrage
 
Und man redet von (SQL-)Parametern

benny 25. Mai 2008 16:43

Re: Sql Abfrage
 
muss auch die Query entsprechend angepasst werden, die meckert nämlich jetzt "Typ für Feld PersonNr unbekannt", bin recht frisch in Deplhi :( !!

mkinzler 25. Mai 2008 16:45

Re: Sql Abfrage
 
Du musst den Parameter auch setzen:
Delphi-Quellcode:
close;
sql.clear;
sql.add('Select NameBez from PersonStam where PersonId=:PersonNr');
ParamByName('PersonNR').Value := PersonNr;
open;

DeddyH 25. Mai 2008 16:46

Re: Sql Abfrage
 
Du musst den Inhalt des Parameters noch bekannt machen:
Delphi-Quellcode:
Query.close;
Query.sql.clear;
Query.sql.add('Select NameBez from PersonStam where PersonId=:PersonNr');
Query.ParamByName('PersonNr').AsString := PersonNr;
Query.open;

benny 25. Mai 2008 16:53

Re: Sql Abfrage
 
das funktioniert eiwandfrei, DANKE euch allen !!! :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:51 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