Есть еще пра интересных вопросов, буду очень благодарен за любую помощь:
1. Акс вполне разрешает называть параметры точно так же как и поля из таблицы, значения присваиваются, все вроде нормально. Однако следующая конструкция возвращает все записи, это и понятно, потому что она неправильная:
PARAMETERS STATUS integer, PNR long;
SELECT Gname,SVNr FROM Test where ((STATUS Is NULL And [Status] Is NULL) OR ([Status]=STATUS)) AND ((PNR Is NULL And [pnr] Is NULL) OR ([pnr]=PNR));
Естественно выделенные большими буквами параметры акс воспринимает как имена полей. Можно ли как-то акцентировать в запросе, что это именно параметры? Нужен какой-то префикс типа
<имя таблицы>.<параметры>.Status ?
2. Хотя вариант без iif вполне прилично отрабатывает, хотелось бы испытать и вариант с iif, чтобы оценить скорость обработки. Например, конструкци для двух параметров + iif выглядит у меня следующим образом:
PARAMETERS St integer, pn long;
SELECT Gname,SVNr FROM Test where iif((st Is NULL) ,
iif([Pnr] Is NULL,([Status] Is NULL) and ([Pnr] Is NULL),([Status] Is NULL) and ([Pnr]=pn)),
iif([Pnr] Is NULL,([Status] = st) and ([Pnr] Is NULL),([Status]=st) and ([Pnr]=pn)));
И это всего-навсего для двух полей / параметров! А если их будет, скажем, шесть?

Конструкция типа
... WHERE ( iif(...) AND iif(...) )
заведомо ошибочна. Не подскажете, можно ли упростить что-то в данном случае?