AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Param count und Param datatype über eine TZQuery ermitteln

Param count und Param datatype über eine TZQuery ermitteln

Ein Thema von cytrinox · begonnen am 25. Nov 2008 · letzter Beitrag vom 30. Nov 2008
Antwort Antwort
Seite 1 von 2  1 2   
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#1

Param count und Param datatype über eine TZQuery ermitteln

  Alt 25. Nov 2008, 22:15
Datenbank: Firebird/MSSQL • Version: 2.0/ab 2000 • Zugriff über: ZEOS 6.x
Hi,

ich muss über eine TZQuery die Anzahl von Parametern sowie die Typen der Parameter feststellen für eine SQL Statement dass ich von einer Funktion übergeben bekomme.
Erschwerend kommt wohl noch hinzu, dass die Statements unnamed-params verwenden, also ? statt :pname.

Die SQL Statements werden nicht von mir generiert, ich muss lediglich über eine API Auskunft darüber geben können wie viele Params und von welchem Typ die sind und danach bekomme ich die Werte für die Parameter übermittelt.

ZQuery.params.count gibt 0 aus und params.parsesql() ignoriert die ? Parameter, das hilft mir also leider auch nicht weiter.

Btw. kann es auch gut sein, dass ich statt einem "SELECT ..." ein execute Befehl für eine Procedure bekomme, gibts da irgendwas das man bei TZQuery + Procedure beachten müsste?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Param count und Param datatype über eine TZQuery ermitte

  Alt 25. Nov 2008, 22:18
Welchen Wert hat .ParamCheck?
Markus Kinzler
  Mit Zitat antworten Zitat
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#3

Re: Param count und Param datatype über eine TZQuery ermitte

  Alt 25. Nov 2008, 22:22
Öh, gute Frage. Ich hab grad meine Windows-Kiste runtergefahren da ich heute nichtmehr mit einer Antwort gerechnet hatte *g*

Welchen Wert sollte es den haben und wie oder was beeinflusst das ganze?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Param count und Param datatype über eine TZQuery ermitte

  Alt 25. Nov 2008, 22:23
Wenn er True ist, werden die Parameter automatisch angelegt, sonst nicht
Markus Kinzler
  Mit Zitat antworten Zitat
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#5

Re: Param count und Param datatype über eine TZQuery ermitte

  Alt 25. Nov 2008, 22:32
Ich hab paramcheck jetzt mal auf true gesetzt.

nach einem ZQuery.sql.text = 'SELECT * FROM DATA WHERE ID = ?;';

Sagt mir params.count aber immer noch 0.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Param count und Param datatype über eine TZQuery ermitte

  Alt 25. Nov 2008, 22:36
Dann bleibt dir ja nur übrig, den SQL Code manuell zu parsen
Markus Kinzler
  Mit Zitat antworten Zitat
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#7

Re: Param count und Param datatype über eine TZQuery ermitte

  Alt 25. Nov 2008, 22:40
Ich habs da mit sehr verschalteten Subselects oder mit vielen inner joins zu tun, ich kann doch dafür unmöglich einen eigenen Parser schreiben. Außerdem müsste ich ja für jeden Parameter erstmal das Feld finden mit dem es verglichen werden soll, ein zusätzliches Query losschicken und dann den Result-type bestimmen. Das sollte doch gerade ZEOS ganz von alleine hinbekommen?
Schließlich bieten sowohl Firebird als auch MSSQL fertige APIs die das machen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Param count und Param datatype über eine TZQuery ermitte

  Alt 25. Nov 2008, 22:44
Bzw. das DBMS. Führe mal einen Prepare aus.
Markus Kinzler
  Mit Zitat antworten Zitat
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#9

Re: Param count und Param datatype über eine TZQuery ermitte

  Alt 25. Nov 2008, 22:46
Und wie? TZQuery hat keine prepare() Methode oder ähnliches.
  Mit Zitat antworten Zitat
Benutzerbild von Andreas H.
Andreas H.

Registriert seit: 3. Mär 2006
Ort: Schopfloch
163 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Param count und Param datatype über eine TZQuery ermitte

  Alt 30. Nov 2008, 18:49
Hallo,

das Thema interssiert mich auch!

Keiner ne Idee?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:18 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