Einzelnen Beitrag anzeigen

Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: MsSQL Abfrage per ParamValues aber als List (IN)

  Alt 8. Jan 2012, 09:19
Schau dir mal in der Hilfe zu den UniDAC die Verwendung von Macros an. Die kannst du zur Laufzeit setzen, ähnlich wie der vorgeschlagene Formatstring. Mit einem gravierenden Unterschied: hier wird das gesamte Argument gesetzt und das kann dann auch ein Leerstring oder NULL sein.

Ich würde wie folgt vorgehen: zunächst würde ich die Where-Klause grundsätzlich mit dem Argument 1=1 setzen. Erstens wird dann auf jeden Fall der Optimizer aufgerufen, zweitens spare ich mir den Test, ob eine Where-Klausel existiert. Die Query würde dann um das Macro &Liste erweitert:

Delphi-Quellcode:
SELECT
  ID, Login, Name
FROM
  User
WHERE
  1 = 1
  &Liste
In der Query trägst du auf dem Reiter Macro unter &Liste einen Dummy ein:

and 1 = 1 In deinem Quelttext überschreibst du dann das Macro:

Query.MacroByName('Liste').Value := 'and ServOrt in ('F', 'U') .


Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat