Hi Igotcha,
hierbei handelt es sich um sogenannte Substitution-Parameter oder -Variablen, die du benötigst, das heißt, der Wert, den du in den Parameter einträgst, wird im
SQL ersetzt.
Damit wäre zum Beispiel dann Folgendes theoretisch möglich (wenn die Datenbank geschachtelte SELECTs unterstützt):
Delphi-Quellcode:
ZQuery.SQL.Text := 'SELECT * FROM Werte WHERE Wert IN (:Wert)';
with ZQuery.ParamByName('Wert') do
begin
Value := 'SELECT Wert FROM AndereWerte WHERE Wert > 0';
ParamType := ptSubst; // gibt's (noch) nicht...
end;
Leider unterstützen die Zeos-Komponenten diese Art der Parameter im Moment (noch) nicht.
Eine Möglichkeit ohne das - wie ich finde - von der Optik
unschöne Verketten von Strings wäre:
ZQuery.SQL.Text := Format('SELECT * FROM Werte WHERE Wert IN (%s)', [Wert]);
MfG
Stevie