![]() |
Datenbank: MSSQL • Version: 2017 • Zugriff über: firedac
params.create: undeklarierter Bezeichner
Hallo zusammen,
bin erstaunt, dass ich keine Parameter deklarieren kann, obwohl ich es in einer anderen Procedure genau so gemacht habe.
Delphi-Quellcode:
[dcc32 Fehler] Unit2.pas(171): E2003 Undeklarierter Bezeichner: 'ftString'main.qryproducts.SQL.Clear; main.qryproducts.Params.Clear; main.qryproducts.Params.CreateParam(ftString, 'nr_pzn', ptInput); main.qryproducts.Params.CreateParam(ftString, 'menge', ptInput); main.qryproducts.Params.CreateParam(ftString, 'einheit', ptInput); main.qryproducts.Params.CreateParam(ftString, 'dafo', ptInput); main.qryproducts.Params.CreateParam(ftString, 'hersteller', ptInput); main.qryproducts.Params.CreateParam(ftString, 'charge', ptInput); main.qryproducts.Params.CreateParam(ftString, 'verfall', ptInput); main.qryproducts.Params.CreateParam(ftString, 'pruefdatum', ptInput); main.qryproducts.Params.CreateParam(ftString, 'pruefer', ptInput); main.qryproducts.Params.CreateParam(ftString, 'name', ptInput); Weiß jemand Rat? |
AW: params.create: undeklarierter Bezeichner
Was ist denn ftString? Wo ist der deklariert? (Okay, ich weiß die Antwort auf die zweite Frage, aber ich frage trotzdem.)
|
AW: params.create: undeklarierter Bezeichner
Ich dachte, es wäre die Angabe, dass der String nr_pzn halt ein String ist.
Ich habe das so bestimmt 10x in meiner Form benutzt und es ging so immer... |
AW: params.create: undeklarierter Bezeichner
Zitat:
Delphi-Quellcode:
So vielleicht, um es nochmal zu verdeutlichen?
main.qryproducts.SQL.Clear;
main.qryproducts.Params.Clear; main.qryproducts.ParamByName('nr_pzn').AsString := nr_pzn; main.qryproducts.ParamByName('menge').AsString := menge; main.qryproducts.ParamByName('einheit').AsString := einheit; main.qryproducts.ParamByName('dafo').AsString := dafo; main.qryproducts.ParamByName('hersteller').AsString := hersteller; main.qryproducts.ParamByName('charge').AsString := charge; main.qryproducts.ParamByName('verfall').AsString := verfall; main.qryproducts.ParamByName('pruefdatum').AsString := pruefdatum; main.qryproducts.ParamByName('pruefer').AsString := pruefer; main.qryproducts.ParamByName('name').AsString := name; |
AW: params.create: undeklarierter Bezeichner
Jetzt sagt er: qryProducts: Parameter 'nr_pzn' nicht gefunden.
Das ist die Procedure.
Delphi-Quellcode:
else begin
//showmessage('es folgen params'); showmessage('es folgen params2'); main.qryproducts.SQL.Clear; main.qryproducts.Params.Clear; main.qryproducts.ParamByName('nr_pzn').AsString:=edit11.text; main.qryproducts.ParamByName('menge').AsString := edit3.text ; main.qryproducts.ParamByName('einheit').AsString := edit4.text; main.qryproducts.ParamByName('dafo').AsString := edit5.text; main.qryproducts.ParamByName('hersteller').AsString := edit6.text; main.qryproducts.ParamByName('charge').AsString := edit7.text; main.qryproducts.ParamByName('verfall').AsString := edit10.text; main.qryproducts.ParamByName('pruefdatum').AsString := edit8.text; main.qryproducts.ParamByName('pruefer').AsString := edit9.text; main.qryproducts.ParamByName('name').AsString := edit2.text; main.qryproducts.ParamByName('text').AsString := richedit1.text; main.qryproducts.ParamByName('cb_1').AsBoolean := pruefmaske.CheckBox1.Checked; main.qryproducts.ParamByName('cb_2').AsBoolean := pruefmaske.CheckBox2.Checked; main.qryproducts.ParamByName('cb_3').AsBoolean := pruefmaske.CheckBox3.Checked; main.qryproducts.ParamByName('cb_4').AsBoolean := pruefmaske.CheckBox4.Checked; showmessage('es folgt insert'); main.qryproducts.SQL.text:=('insert into fam_check (name, nr_pzn, dafo_kurz, menge,einheit, hersteller_kurz, charge, verfall, p_datum, pruefer, text,cb_1, cb_2, cb_3,cb_4')+ 'Values (:name, :nr_pzn, :dafo, :menge, :einheit, :hersteller, :charge, :verfall, :pruefdatum, :pruefer, :cb_1, :cb_2, :cb_3, :cb_4'; main.qryproducts.ExecSQL; clearfields_pruef(); end; |
AW: params.create: undeklarierter Bezeichner
Du musst ERST das SQL zuweisen und DANN die Parameter setzen.
|
AW: params.create: undeklarierter Bezeichner
Zitat:
Delphi-Quellcode:
Probiere mal bitte.
main.qryproducts.Params[0].AsString:=edit11.text;
main.qryproducts.Params[1].AsString := edit3.text ; main.qryproducts.Params[2].AsString := edit4.text; main.qryproducts.Params[3].AsString := edit5.text; main.qryproducts.Params[4].AsString := edit6.text; main.qryproducts.Params[5].AsString := edit7.text; main.qryproducts.Params[6].AsString := edit10.text; main.qryproducts.Params[7].AsString := edit8.text; main.qryproducts.Params[8].AsString := edit9.text; main.qryproducts.Params[9].AsString := edit2.text; main.qryproducts.Params[10].AsString := richedit1.text; main.qryproducts.Params[11].AsBoolean := pruefmaske.CheckBox1.Checked; main.qryproducts.Params[12].AsBoolean := pruefmaske.CheckBox2.Checked; main.qryproducts.Params[13].AsBoolean := pruefmaske.CheckBox3.Checked; main.qryproducts.Params[14].AsBoolean := pruefmaske.CheckBox4.Checked; |
AW: params.create: undeklarierter Bezeichner
Zitat:
Eigentlich erstellen viele solcher Komponenten selbständig die Parameterliste, anhand des übergebenen QueryStrings. (nur solche Spezialisierungen wie ftString sind dann natürlich fast nie gegeben, da der Zieltyp praktisch nie automatisch erkannt werden kann, womit es einfach bei ftUnknown bleibt) Aber selbst wenn du voher die Typen manuell definiert hattest (siehe Post #1), dann hat vor der Zuweisung
Delphi-Quellcode:
das
ParamByName(...).AsString:=...
Delphi-Quellcode:
die manuellen Definitionen weggeworfen. :roll:
main.qryproducts.Params.Clear;
[edit] und der Indexzugriff
Delphi-Quellcode:
anstatt der Namentlichen wird selbstverständlich so auch nicht funktionieren. :zwinker:
Params[...]
[/edit] PS: Das mit dem automatischen ist auch bei den TFields so. Entweder vorher definiert man "alle" TFields manuell, oder nach dem Open werden die TFields automatisch erstellt (hier aber mit den richtigen Typen, da diese bekannt sind. (allerdings auch hier entweder oder ... entweder alles manuell oder nur dann automatisch, wenn nichts definiert wurde) |
AW: params.create: undeklarierter Bezeichner
Ohh, ja da spitze mal die Ohren und befolge die nicht-von-mir Anweisungen.
edit, jetzt hat es bei mir erst klick gemacht an welcher stelle was woanders hin muss. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 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 by Thomas Breitkreuz