AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FB: Prepared Query mit In-Statement ?
Thema durchsuchen
Ansicht
Themen-Optionen

FB: Prepared Query mit In-Statement ?

Ein Thema von hoika · begonnen am 30. Dez 2017 · letzter Beitrag vom 11. Jan 2018
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.554 Beiträge
 
Delphi 7 Professional
 
#7

AW: FB: Prepared Query mit In-Statement ?

  Alt 30. Dez 2017, 19:57
Select Feld3 From Tab
Where
(Feld1=:Feld1) And
(Feld2 In :Feld2)
Das geht nicht, nur so:
SQL-Code:
Select Feld3 From Tab
Where
  (Feld1=:Feld1) And
  (Feld2 In (:Feld2))
Die Klammern dürfen nicht Teil des Parameterinhaltes sein. Ist dem so, so ist "Token unknown" ein Teil der Fehlermeldung.

Vollständig dürfte sie in etwa
Zitat:
SQL Error: Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 35 ?. Error Code: -104. Invalid token The SQL: select id from tabbel where id in ?;
lauten.

Hallo,
der Fehler kommt bereits beim Prepare,
hat also nichts mit der Anzahl der später tatsächlichen Parameter zu tun.

FB macht das schon richtig so, dass es sagt, IN kann nicht prepared werden.
Doch, das hat mit den Parametern zu tuen. Die sind in Deinem Statement schlicht und einfach falsch und deshalb hat Prepare kein gültiges SQL, das es später mit Parametern versorgen kann.

Um Die Syntax für das Prepare zu prüfen, gehe ich zum Testen immer her und mache um die Parameter Hochkommata.

Also
SQL-Code:
Select Feld3 From Tab
Where
  (Feld1=':Feld1') And
  (Feld2 In ':Feld2')
bei Deinem Statement. Das wird auch scheitern, da es ein ungültiges SQL ist. Die Klammern beim IN fehlen!!!
Parameter können nur Werte enthalten, aber nicht Teile des SQLs. Die Klammern sind aber Teile des SQLs.
SQL-Code:
Select Feld3 From Tab
Where
  (Feld1=:Feld1) And
  (Feld2 :Feld2)
qry.params[0] := 'in (1,2,3)'; geht ja auch nicht oder gar
SQL-Code:
Select Feld3 From Tab
Where
  (Feld1=:Feld1) And
  (:Feld2)
qry.params[0] := 'feld2 in (1,2,3)'; geht auch nicht.
  Mit Zitat antworten Zitat
 


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 01:40 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