Использование FIBL

Модератор: Модераторы

Использование FIBL

Сообщение keymaster » 08.08.2006 21:48:03

Решил попользовать Firebird embed в приложениях.
Для разработки поставил FIBL, но теперь приложение требует
разные DLL из обычного firebirdа.

Я что-то упустил?
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение m_guest » 08.08.2006 22:15:36

embedded server - это fbembed.dll, копируешь ее в папку с программой,
переименовываешь в fbclient.dll и работаешь.
Но могут потребоваться fbintl.dll, ifbudf.dll,firebird.conf,firebird.msg
Это будет выглядеть примерно так:
Код: Выделить всё
  c:\my_app\app.exe
  c:\my_app\fbclient.dll
  c:\my_app\ib_util.dll
  c:\my_app\firebird.conf
  c:\my_app\firebird.msg
  c:\my_app\intl\fbintl.dll
  c:\my_app\udf\fbudf.dll

Читай README_embedded.txt
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Сообщение keymaster » 09.08.2006 01:02:18

я не о том.
При инсталляции в лазаря компонентов FIBL он требует других DLL, которых в embed нет, например - msvcr7.dll

Вторая проблема - поставил Firebird 1.5, базы не поднимаются из бэкапа (Unsuccessful execution caused by an unavailable resource.
Cannot attach to services manager.)
Новые БД не создаются, говорит, что unavailable database.
C базой работаю из IBExpert.
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение m_guest » 09.08.2006 12:23:29

Ну так поставь, раз требует.
При сборке FB использовался MSVC7 скорее всего, поэтому и требует
У меня в System32 msvcr7.dll уже лежала, поэтому ничего такого у меня не было.
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Сообщение keymaster » 09.08.2006 12:39:58

Получается, что к заказу надо добавить несколько лишних DLL.
Это не есть гуд.
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение keymaster » 09.08.2006 17:28:20

А со второй проблемой как быть?
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение m_guest » 09.08.2006 18:39:18

Первое, что приходит в голову, а поднят ли собственно сам FB?
Во-вторых, IBExpert иногда глючит при восстановлении..
Правд а, у меня вылетал уже после начала самого процесса.
Попробуй gbak
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Сообщение keymaster » 09.08.2006 19:38:15

FB поднят.
База поднялась из бэкапа.
Создаю в проекте datamodule, на него кладу FIBDatabase.
При попытке поставить connected в true говорит unavailable database.
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение m_guest » 09.08.2006 20:57:00

Как насчет FIBTransaction?
Без него никак.
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Сообщение keymaster » 09.08.2006 21:29:26

Естественно, он присутствует.
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение keymaster » 09.08.2006 21:33:17

Переустановил FB заново.
Заработало вроде, но:

при запуске проекта, говорит DB is currently open и падает.
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение m_guest » 09.08.2006 21:37:09

Свойствам DefaultTransaction (у FIBDatabase) и DefaultDatabase (у FIBTransaction) присвоены значения?
DBName корректно заполнен, в смысле полный путь к БД?
Вообще приведи значения для основных свойств этих двух компонентов.
-----------
ПО последней проблеме, попробуй сервис FB перезапусти.
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Сообщение keymaster » 09.08.2006 21:54:11

Соединение устанавливается так:
Код: Выделить всё
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin

  with FIBDatabase1 do
  begin
   DBName := ExtractFileDir(Application.ExeName)+  '\hc.gdb';
   DefaultTransaction := FIBTransaction1;
   UserName := 'sysdba';
   Password := 'masterkey';
   Connected := true;
  end;
 
  with FIBTransaction1 do
  begin
    DefaultDatabase := FIBDatabase1;
    Active := True;
  end;
end;
       
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение m_guest » 09.08.2006 22:20:22

А если так:
Код: Выделить всё
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
  with FIBDatabase1,FIBTransaction1 do begin
    DBName := ExtractFileDir(Application.ExeName)+  '\hc.gdb';
    DefaultTransaction := FIBTransaction1;
    DefaultDatabase := FIBDatabase1;
    UserName := 'sysdba';
    Password := 'masterkey';
    Connected := true;
    Active := True;
  end;
end;


Т.е. Подключаемся к БД только после установки DefaultTransaction и DefaultDatabase
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Сообщение keymaster » 09.08.2006 22:23:06

При таком раскладе, как ни странно, заработало.
Спасибо.
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru