Страница 1 из 1

Не работает FireBird Embedded на некоторых компьютерах

Добавлено: 25 окт 2011, 15:44
IDGRASP
Здравствуйте! У меня возникла серьезная проблема при работе с FB Embedded. При переносе приложение на другие машины СУБД отказывается работать. :( На некоторых компах совсем, на других иногда база создается, но уже не открывается. Нет никаких ошибок и логи чистые. Я уже месяц бьюсь об стенку :( Пробовал менять провайдера (вначале был стандартный для интербэйса) на FibPlus - результат тот же. Что это может быть?

Re: Не работает FireBird Embedded на некоторых компьютерах

Добавлено: 25 окт 2011, 20:51
kdv
начнем с того, что тема не относится к "баги и падения сервера".
При переносе приложение на другие машины СУБД отказывается работать.
детский лепет. Обычно выдается какое-то сообщение об ошибке, которое нужно обязательно приводить, и по которому можно понять, в чем проблема. "не работает", "не хочет", "ругается" - это все междометия.
Нет никаких ошибок и логи чистые.
чудес не бывает. значит, ваше приложение "глотает" ошибки своим обработчиком exception типа

Код: Выделить всё

try
...
except
// тут ничего нет, потому и "не выдает ошибку"
end;
Пробовал менять провайдера (вначале был стандартный для интербэйса) на FibPlus - результат тот же.
что значит "провайдер"? Никакого "стандартного провайдера" нет. Есть компоненты IBX, есть провайдеры OLE DB, но ничто не является "стандартным".

Есть у вас доступ хоть к одному такому компьютеру? Если да - запустите на нем process monitor (первая ссылка в гугле), и промониторьте свое приложение.
Для создания БД и коннекта по локальному протоколу, например, есть настройки в зависимости от ОС и версии FB в firebird.conf. На XP никаких настроек не нужно, на Vista и Win7 - нужно указание префикса Global (параметр IpcName). Кроме того, на Vista и Win7 есть особенности в расположении файла БД - в этих ОС есть ограничения для доступа к файлам вообще в отдельных папках. Например, нельзя располагать файлы данных в Program Files, и т.д. Если вы нарушаете эти правила, то виноваты вы, а не Firebird.

Re: Не работает FireBird Embedded на некоторых компьютерах

Добавлено: 26 окт 2011, 21:32
IDGRASP
Извиняюсь за вопрос не по теме :) Перепробовал все советы, ничего не вышло. Проверял Process Monitor'ом - все либы грузятся нормально. Проверял на двух машинах (с работающей базой и нет).
Единственное что смог - нашел и убрал все обработчики исключений, в результате выяснил - база создается в принципе нормально. Таблицы вроде тоже. Но при инзерте вылетает ошибка:
arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character sets.
Проверял FlameRobin-ом - таблица не открывается, вылетает SQL Exeption (код -802) типа:
Arithmetic overflow or division by zero has occured
Чувствую что с кодировкой что-то не так при выполнении запроса. Уже руки опускаются. Перейду наверное на SQLite скоро :(

Re: Не работает FireBird Embedded на некоторых компьютерах

Добавлено: 26 окт 2011, 23:06
kdv
Чувствую что с кодировкой что-то не так при выполнении запроса. Уже руки опускаются.
вы Embedded распаковали zip-ом С ПОДКАТАЛОГАМИ???
Чарсет коннекта указан корректно, win1251 или как-то иначе?

Re: Не работает FireBird Embedded на некоторых компьютерах

Добавлено: 27 окт 2011, 01:16
IDGRASP
Да, папки intl и udf. чарсет тоже вин1251.

Re: Не работает FireBird Embedded на некоторых компьютерах

Добавлено: 27 окт 2011, 10:38
kdv
странно все это. вы так перехватываете ошибки, что не видели ошибки с чарсетом? Эта ошибка либо из-за неправильной распаковки embedded, либо из-за ваших действий с кодировками БД.

При чем тут Flamerobin, я не знаю, на Windows люди работают с базами при помощи IBExpert. В любом случае, если таблица "не открывается", значит или в ней занесены кривые данные, или чарсет данных "не тот".

Re: Не работает FireBird Embedded на некоторых компьютерах

Добавлено: 27 окт 2011, 15:08
Dimitry Sibiryakov
Просто не все ещё прочитали "FAQ по работе с русскими буквами".

Re: Не работает FireBird Embedded на некоторых компьютерах

Добавлено: 09 ноя 2011, 12:02
IDGRASP
Нашел решение проблемы - просто купил FibPlus и не парюсь. Спасибо за помощь!

Re: Не работает FireBird Embedded на некоторых компьютерах

Добавлено: 14 ноя 2011, 01:19
kdv
фигня какая-то, а не "решение". FIBPlus - это абсолютно такой же "клиент", как и IBX, включенный в Delphi/C++Builder. Ваша проблема заменой одних компонент на другие если и решилась, то значит у вас в приложении был кривой код. С Embedded и обычным сервером все компоненты работают абсолютно идентично.