Не работает FireBird Embedded на некоторых компьютерах
Не работает FireBird Embedded на некоторых компьютерах
Здравствуйте! У меня возникла серьезная проблема при работе с FB Embedded. При переносе приложение на другие машины СУБД отказывается работать. На некоторых компах совсем, на других иногда база создается, но уже не открывается. Нет никаких ошибок и логи чистые. Я уже месяц бьюсь об стенку Пробовал менять провайдера (вначале был стандартный для интербэйса) на FibPlus - результат тот же. Что это может быть?
Re: Не работает FireBird Embedded на некоторых компьютерах
начнем с того, что тема не относится к "баги и падения сервера".
Есть у вас доступ хоть к одному такому компьютеру? Если да - запустите на нем process monitor (первая ссылка в гугле), и промониторьте свое приложение.
Для создания БД и коннекта по локальному протоколу, например, есть настройки в зависимости от ОС и версии FB в firebird.conf. На XP никаких настроек не нужно, на Vista и Win7 - нужно указание префикса Global (параметр IpcName). Кроме того, на Vista и Win7 есть особенности в расположении файла БД - в этих ОС есть ограничения для доступа к файлам вообще в отдельных папках. Например, нельзя располагать файлы данных в Program Files, и т.д. Если вы нарушаете эти правила, то виноваты вы, а не Firebird.
детский лепет. Обычно выдается какое-то сообщение об ошибке, которое нужно обязательно приводить, и по которому можно понять, в чем проблема. "не работает", "не хочет", "ругается" - это все междометия.При переносе приложение на другие машины СУБД отказывается работать.
чудес не бывает. значит, ваше приложение "глотает" ошибки своим обработчиком exception типаНет никаких ошибок и логи чистые.
Код: Выделить всё
try
...
except
// тут ничего нет, потому и "не выдает ошибку"
end;
что значит "провайдер"? Никакого "стандартного провайдера" нет. Есть компоненты IBX, есть провайдеры OLE DB, но ничто не является "стандартным".Пробовал менять провайдера (вначале был стандартный для интербэйса) на FibPlus - результат тот же.
Есть у вас доступ хоть к одному такому компьютеру? Если да - запустите на нем process monitor (первая ссылка в гугле), и промониторьте свое приложение.
Для создания БД и коннекта по локальному протоколу, например, есть настройки в зависимости от ОС и версии FB в firebird.conf. На XP никаких настроек не нужно, на Vista и Win7 - нужно указание префикса Global (параметр IpcName). Кроме того, на Vista и Win7 есть особенности в расположении файла БД - в этих ОС есть ограничения для доступа к файлам вообще в отдельных папках. Например, нельзя располагать файлы данных в Program Files, и т.д. Если вы нарушаете эти правила, то виноваты вы, а не Firebird.
Re: Не работает FireBird Embedded на некоторых компьютерах
Извиняюсь за вопрос не по теме Перепробовал все советы, ничего не вышло. Проверял Process Monitor'ом - все либы грузятся нормально. Проверял на двух машинах (с работающей базой и нет).
Единственное что смог - нашел и убрал все обработчики исключений, в результате выяснил - база создается в принципе нормально. Таблицы вроде тоже. Но при инзерте вылетает ошибка:
Единственное что смог - нашел и убрал все обработчики исключений, в результате выяснил - база создается в принципе нормально. Таблицы вроде тоже. Но при инзерте вылетает ошибка:
Проверял FlameRobin-ом - таблица не открывается, вылетает SQL Exeption (код -802) типа:arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character sets.
Чувствую что с кодировкой что-то не так при выполнении запроса. Уже руки опускаются. Перейду наверное на SQLite скороArithmetic overflow or division by zero has occured
Re: Не работает FireBird Embedded на некоторых компьютерах
вы Embedded распаковали zip-ом С ПОДКАТАЛОГАМИ???Чувствую что с кодировкой что-то не так при выполнении запроса. Уже руки опускаются.
Чарсет коннекта указан корректно, win1251 или как-то иначе?
Re: Не работает FireBird Embedded на некоторых компьютерах
Да, папки intl и udf. чарсет тоже вин1251.
Re: Не работает FireBird Embedded на некоторых компьютерах
странно все это. вы так перехватываете ошибки, что не видели ошибки с чарсетом? Эта ошибка либо из-за неправильной распаковки embedded, либо из-за ваших действий с кодировками БД.
При чем тут Flamerobin, я не знаю, на Windows люди работают с базами при помощи IBExpert. В любом случае, если таблица "не открывается", значит или в ней занесены кривые данные, или чарсет данных "не тот".
При чем тут Flamerobin, я не знаю, на Windows люди работают с базами при помощи IBExpert. В любом случае, если таблица "не открывается", значит или в ней занесены кривые данные, или чарсет данных "не тот".
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: Не работает FireBird Embedded на некоторых компьютерах
Просто не все ещё прочитали "FAQ по работе с русскими буквами".
Re: Не работает FireBird Embedded на некоторых компьютерах
Нашел решение проблемы - просто купил FibPlus и не парюсь. Спасибо за помощь!
Re: Не работает FireBird Embedded на некоторых компьютерах
фигня какая-то, а не "решение". FIBPlus - это абсолютно такой же "клиент", как и IBX, включенный в Delphi/C++Builder. Ваша проблема заменой одних компонент на другие если и решилась, то значит у вас в приложении был кривой код. С Embedded и обычным сервером все компоненты работают абсолютно идентично.