AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken params.create: undeklarierter Bezeichner
Thema durchsuchen
Ansicht
Themen-Optionen

params.create: undeklarierter Bezeichner

Ein Thema von Dr. Jack · begonnen am 3. Aug 2018 · letzter Beitrag vom 4. Aug 2018
Antwort Antwort
Dr. Jack

Registriert seit: 17. Mär 2010
78 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

params.create: undeklarierter Bezeichner

  Alt 3. Aug 2018, 22:55
Datenbank: MSSQL • Version: 2017 • Zugriff über: firedac
Hallo zusammen,

bin erstaunt, dass ich keine Parameter deklarieren kann, obwohl ich es in einer anderen Procedure genau so gemacht habe.
Delphi-Quellcode:

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);
[dcc32 Fehler] Unit2.pas(171): E2003 Undeklarierter Bezeichner: 'ftString'

Weiß jemand Rat?
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.017 Beiträge
 
Delphi 2009 Professional
 
#2

AW: params.create: undeklarierter Bezeichner

  Alt 3. Aug 2018, 22:57
Was ist denn ftString? Wo ist der deklariert? (Okay, ich weiß die Antwort auf die zweite Frage, aber ich frage trotzdem.)
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Dr. Jack

Registriert seit: 17. Mär 2010
78 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#3

AW: params.create: undeklarierter Bezeichner

  Alt 3. Aug 2018, 23:06
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...

Geändert von Dr. Jack ( 3. Aug 2018 um 23:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: params.create: undeklarierter Bezeichner

  Alt 4. Aug 2018, 00:04
Weiß jemand Rat?
Delphi-Quellcode:
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;
So vielleicht, um es nochmal zu verdeutlichen?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Dr. Jack

Registriert seit: 17. Mär 2010
78 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#5

AW: params.create: undeklarierter Bezeichner

  Alt 4. Aug 2018, 00:22
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;
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: params.create: undeklarierter Bezeichner

  Alt 4. Aug 2018, 00:27
Du musst ERST das SQL zuweisen und DANN die Parameter setzen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: params.create: undeklarierter Bezeichner

  Alt 4. Aug 2018, 00:32
Jetzt sagt er: qryProducts: Parameter 'nr_pzn' nicht gefunden.
Hmmm, so sollte es dann aber klappen.
Delphi-Quellcode:
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;
Probiere mal bitte.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#8

AW: params.create: undeklarierter Bezeichner

  Alt 4. Aug 2018, 00:34
Jetzt sagt er: qryProducts: Parameter 'nr_pzn' nicht gefunden.
Nja, wenn das Query erst danach definiert wird, dann ist ja klarr, wenn die Zuweisung nicht funktioniert.

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 ParamByName(...).AsString:=... das main.qryproducts.Params.Clear; die manuellen Definitionen weggeworfen.

[edit]
und der Indexzugriff Params[...] anstatt der Namentlichen wird selbstverständlich so auch nicht funktionieren.
[/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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 4. Aug 2018 um 00:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: params.create: undeklarierter Bezeichner

  Alt 4. Aug 2018, 00:37
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.
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 4. Aug 2018 um 00:48 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr.
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