По "рекомендации" в одной из тем стал использовать параметры для передачи в TSQLQuery , вместо того чтобы динамически формировать текст запроса сразу со значениями.
Проблемы возникают с передачей параметров которые могут принимать значение null
Например
var pID : variant;
begin
pID:=null;
... Далее pID может измениться при выполнении других запросов....
Если для передачи параметра в очередной запрос просто написать
ParamByName('pID').AsInteger:= pID;
то в лучае когда pID не меняется ни каким запросом, т.е. он остается null , то возникает ошибка - о невозможности конвертации null в integer
написал так
if pID<>null then ParamByName('pID').AsInteger:= pID;
и работает. Но всё такие любопытно, что не так c null
P.S. про nil некоторые пишут, не работает nil