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

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
IDGRASP
Сообщения: 4
Зарегистрирован: 25 окт 2011, 15:32

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

Сообщение IDGRASP » 25 окт 2011, 15:44

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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

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

Сообщение kdv » 25 окт 2011, 20:51

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

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

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

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

IDGRASP
Сообщения: 4
Зарегистрирован: 25 окт 2011, 15:32

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

Сообщение IDGRASP » 26 окт 2011, 21:32

Извиняюсь за вопрос не по теме :) Перепробовал все советы, ничего не вышло. Проверял 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 скоро :(

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

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

Сообщение kdv » 26 окт 2011, 23:06

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

IDGRASP
Сообщения: 4
Зарегистрирован: 25 окт 2011, 15:32

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

Сообщение IDGRASP » 27 окт 2011, 01:16

Да, папки intl и udf. чарсет тоже вин1251.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

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

Сообщение kdv » 27 окт 2011, 10:38

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

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

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

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

Сообщение Dimitry Sibiryakov » 27 окт 2011, 15:08

Просто не все ещё прочитали "FAQ по работе с русскими буквами".

IDGRASP
Сообщения: 4
Зарегистрирован: 25 окт 2011, 15:32

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

Сообщение IDGRASP » 09 ноя 2011, 12:02

Нашел решение проблемы - просто купил FibPlus и не парюсь. Спасибо за помощь!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

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

Сообщение kdv » 14 ноя 2011, 01:19

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

Ответить