Los parámetros no funcionan así; no tienen idea de que lo que está tratando de proporcionar es una lista de valores separados por comas. Si configura ParamByName('WhatEver').AsString
o Value
, cree que te refieres a una cadena entrecomillada que contiene todo lo que pertenece a ese parámetro. Así que está haciendo exactamente lo que parece:está pasando IN ('1, 2, 3')
, en lugar del IN (1, 2, 3)
previsto .
Deberá volver a analizarlo usted mismo y usar una tabla temporal, o construir el WHERE
cláusula dinámicamente y concatenándola antes de ejecutar la consulta. (En realidad, podría generar la consulta dinámicamente, creando un nuevo parámetro para cada uno de los elementos en el IN
cláusula, y luego recorre y asigna valores a cada uno de esos parámetros creados dinámicamente, pero eso se pone muy feo muy rápidamente).