Запрос надо сказать непростой. Я всю голову сломал пока понял как он работает. Трюк великолепный!
Можно решить задачу еще и так
1. в компоненте Query создаешь вычисляемый столбец (у меня это z)
2. Пишешь процедуру его вычисления (см код)
3. Все
Код:
procedure TForm1.IBQuery1CalcFields(DataSet: TDataSet);
begin
with IBQuery1 do
FieldByName('z').AsInteger:=RecNo;
end;