Консультация № 167952
22.05.2009, 02:22
0.00 руб.
0 3 0
Здравствуйте!

Незнаю относится ли lazarus к freepascal... но навернее правильнее сюда.

Задача
Пытаюсь объединить lazarus и Firebird, причем Firebird embedded

если подключать lazarus к Firebird серверу на другом компе делаю это так:
DBGrid - таблица, указываю Datasource, как Datasource :)
в Datasource указываю SQLQuery, как DataSet
в SQLQuery указываю IBConnection, как Database
в IBConnection указываю:
HostName - ip сервера: 192.168.11.128
DatabaseName - путь к базе данных: C:\base\EMPLOYEE.FDB
Connected - true
все работает!

Но если пытаюсь запустить как embedded - копирую все файлы по инструкции (приложение)

ip не указываю
путь указываю

пишет unavaible database
если указать ip то выходит сообщение с крестиком (пустое)

что можно сделать?

PS: Firebird-2.5.0.23247-1_Win32_embed_Beta1.zip

Приложение:
Just copy fbembed.dll, icudt30.dll, icuin30.dll and
icuuc30.dll into the directory with your application.
Then rename fbembed.dll to either fbclient.dll or
gds32.dll depending on your database connectivity software.
Then start your application and it will use the embedded
server as a client library and will be able to access
local datasases. You should also copy firebird.msg and
firebird.conf (if necessary) to the same directory.

If external libraries are required for your application,
then you should have them separately. Most probably, it
will be INTL support (fbintl.dll and fbintl.conf) or UDF
libraries. To be able to use them, you should place them
into the directory tree which emulates the Firebird server
one, i.e. has subdirectories like /intl or /udf:

c:\my_app\app.exe
c:\my_app\gds32.dll
c:\my_app\ib_util.dll
c:\my_app\icudt30.dll
c:\my_app\icuin30.dll
c:\my_app\icuuc30.dll
c:\my_app\firebird.conf
c:\my_app\firebird.msg
c:\my_app\intl\fbintl.dll
c:\my_app\intl\fbintl.conf
c:\my_app\udf\fbudf.dll


пытался с firebird.conf и вобще без него

Обсуждение

давно
Мастер-Эксперт
425
4118
22.05.2009, 05:05
общий
1. Вы переименовывали файл fbembed.dll и в fbclient.dll и в gds32.dll, и в обоих случаях соединения не было?
2. Вы запускаете программу из среды Lazarus или непосредственно из каталога, где лежит экзешник?
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
23.05.2009, 22:07
общий
1. переименовал fbembed.dll в gds32.dll, сейчас попробовал переименовать в fbclient.dll. тоже самое.
пробовал все 3 библиотеки оставить тоже не помогло....

2. запускаю программу из lazarus

пробовал скомпилировать и запустить, выдал:
- unable to complite network request to host 127.0.0.1
- Failed to establish a connection
- подключение не установлено т.к. исходный компьютер отверг запрос на подключение

press ok to ignaore data corruption
press cancel to kill program



PS Lazarus 0.9.26.2 beta
давно
Мастер-Эксперт
425
4118
24.05.2009, 08:46
общий
Вот что делал я:
- Переименовал файл fbembed.dll в gds32.dll и скопировал его и файлы icudt30.dll, icuin30.dll, icuuc30.dll в каталог, где установлен Lazarus. У меня это D:\Lazarus. После этого база стала нормально открываться при запуске приложения из самой среды Lazarus. Если у Вас база содержит строки на русском (или любом, отличном от английского) языке, то обязательно ещё присутствие каталога intl со всеми содержащимися в нём файлами, т.к. они отвечают за сортировку строк в других языках, кроме английского. Если только цифры, то этот каталог можно с программой не прилагать.
И ещё. В настройках IBConnection поле hostname я не указывал, но заполнил user:=sysdba и password:=masterkey, т.к. именно с этими логином и паролем у меня создавалась БД.
Когда запускается уже готовая программа из своего каталога, то в этом же каталоге должны находится и gds32.dll с файлами icu*.dll.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Форма ответа