Разная работа Firebird UDF на XP x86 и Win7 x64 - почему?
Delphi+Firebird+UDF. Не пойму, как происходит следующее: 2 системы, одна xp 32бит, вторая win7 64бит. Проект сам создает базу, если ее нет; при запуске приложения придумал так делать "проверку" на наличие библиотеки rfunc: "select FloatToStr(13.5, ''%g'') from RDB$DATABASE" - если возвращает ошибку, вывожу сообщение о недостаче dll в udf-папке.
В общем, на xp, почему-то, в базе, при ее создании (именно создании, еще до запуска моей "проверки" на наличие dll), в UDF автоматически добавляются 3 функции из этой библиотеки: FloatToStr, LibName, LibVersion. Никаких declare external function я не выполняю!!! 11один. А в win7, без declare external function, эти функции, как и должно быть, не появляются.
Но у меня проверка по наличию этой функции (FloatToStr) в базе запускает процедуру объявления остальных нужных функций; соответственно - на xp они не добавляются, а в win7 все работает.
Версии Firebird одинаковые - 2.5.1
Почему так происходит?
Спасибо.
----------
омфг разобрался!
когда-то, все-таки, добавил declare external function (добавил в виде компонента-скрипта и запускал его при создании базы) и напрочь забыл об этом.. . именно на те три функции! у скрипта не установил свойство Transaction.. и в xp, почему-то, коммитилось без транзакции (оО) , а в Win7 - не коммитилось.
Ужасть, всю голову сломал. ..ногам покоя не дает.