Нигде не встречал информации о работе компонентов IBX (InterBase Express) под FPC, но решил попытаться их задействовать. С некоторыми правками, но компоненты откомпилировались, и проект, изначально написанный на Delphi, заработал. Но выяснилась одна странная вещь - TIBStringField некорректно возвращает значение поля. Анализ показывает, что проблема в методе TIBCustomDataSet.InternalGetFieldData. Похоже на то, что значения смещения fdDataOfs различны в Delphi и Lazarus. Но непонятно, откуда растут ноги, и является ли именно это причиной проблемы.
Все остальное работает нормально (выборка, запись), и другие классы полей тоже ведут себя корректно.
Кто-нибудь уже использовал компоненты IBX под FPC? и сталкивался ли с подобной проблемой?