Я тут решил реализовать один инструмент, использующий SqlDB, в частности, функции подстановки значения переменной в запрос, который содержит путь к переменной после символа:. Например:## Код:
```
delete from divisions where id = :PrivMod.rec.id
```

При этом, я подставлял значение в rec типа ANYPTR свой конкретный объект.
Однако процедура SqlDB.Compile использует Meta.LookupPath, которая не поддерживает проход по таким абстрактным записям.
Как одно из решений можно предложить такой патч.
В процедуре Meta.LookupPath заменить:
## Код:
```
IF i.typ = recTyp THEN i.Lookup(name, i) ELSE SetUndef(i) END
```
на## Код:
```
CASE i.typ OF
   recTyp: 
      i.Lookup(name, i)
   |ptrTyp, anyPtrTyp: 
      i.Deref(i);
      ASSERT(i.obj=varObj, 40);
      i.Lookup(name, i)
   ELSE 
      SetUndef(i) 
   END
```

Нехорошо это, конечно, патчить такие важные модули. Возможно, выгоднее будет пропатчить SqlDB, тогда данный патч можно рассматривать, как доказательство предположения о неполноте процедуры LookupPath. Проблема в том, что ни тот ни другой модуль нельзя просто так выкинуть и заменить на новый.