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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Firebird Embedded - какие dll положить рядом с exe, и создание самой бд... 
:(
    Опции темы
Teleport
Дата 24.12.2008, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



Создавал спокойно базы данных в Access, делал там таблички всякие и писал клиентскую часть на делфи, а работал я с этими бд через ADO. Теперь решил освоить FireBird Embedded (бесплатна для коммерческого использования - если не ошибаюсь). Скачал версию Firebird-2.1.1.17910-0_Win32_embed
Вопросы: 
1)Какие dll положить рядом с exe. 
2)И потом - через какую программку можно создавать саму бд? Т.е. я вот раньше через Access создавал, иногда программным способом, а теперь через что можно? Или нужно программным способом теперь создавать?


--------------------
user posted image
user posted image 
PM MAIL   Вверх
Akella
Дата 24.12.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



При чём здесь Delphi? smile

Добавлено через 1 минуту и 2 секунды
1. Все. Как минимум прочти текст лицензии.
2. А IBExpert уже отменили?
PM MAIL   Вверх
Teleport
Дата 24.12.2008, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



уважаемый Akella, я не знаю причем тут делфи. Смысл такого неадекватного вопроса?
Цитата

При чём здесь Delphi? 

Если ты не понял: я вообще не про делфи спрашиваю. 

1)Насчет текста лицензии прочел, это помогло действительно. На этом спасибо. Как я понял нужны следующие файлы в папку к моему приложению:
fbembed.dllicudt30.dllicuin30.dll and  icuuc30.dll. Затем переименовать fbembed.dll в fbclient.dll или в 
gds32.dll.

Но так и не понял для чего нужны  firebird.msg  и firebird.conf?

2) только в IBExpert можно создавать? или есть   




--------------------
user posted image
user posted image 
PM MAIL   Вверх
Akella
Дата 24.12.2008, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Teleport @  24.12.2008,  20:56 Найти цитируемый пост)
уважаемый Akella, я не знаю причем тут делфи.

Если не знаешь, то узнай у себя, зачем вопрос по Firebird задаёшь в разделе Delphi? smile

Добавлено через 25 секунд
Цитата(Teleport @  24.12.2008,  20:56 Найти цитируемый пост)
Если ты не понял: я вообще не про делфи спрашиваю. 

я-то понял, а ты понял?

Добавлено через 1 минуту и 2 секунды
Цитата(Teleport @  24.12.2008,  20:56 Найти цитируемый пост)
2) только в IBExpert можно создавать?

нет

Добавлено через 5 минут и 40 секунд
Цитата(Teleport @  24.12.2008,  20:56 Найти цитируемый пост)
или есть   

есть, конечно: ISTool - родная утилита, есть BlazeTop, Firebird Code Factory, Firebird Maestro

Добавлено через 6 минут и 56 секунд
Цитата(Teleport @  24.12.2008,  20:56 Найти цитируемый пост)
Затем переименовать fbembed.dll в fbclient.dll или в 
gds32.dll.

Зачем переименовывать? Можно просто в параметрах подключения указать библиотеку доступа.
PM MAIL   Вверх
Teleport
Дата 25.12.2008, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



извиняюсь. сглупил.


--------------------
user posted image
user posted image 
PM MAIL   Вверх
Deniz
Дата 25.12.2008, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(Akella @  25.12.2008,  00:43 Найти цитируемый пост)
Зачем переименовывать? Можно просто в параметрах подключения указать библиотеку доступа. 
IBX, BDE и возможно еще кто-то не поддерживают указание библиотеки доступа, в этих случаях придется переименовать в gds32.dll.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akella
Дата 25.12.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Кстати, IBX в Д2009 уже не совсем поддерживает FB.
PM MAIL   Вверх
holodnaya
Дата 18.11.2009, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



Цитата(Akella @  24.12.2008,  21:43 Найти цитируемый пост)
Зачем переименовывать? Можно просто в параметрах подключения указать библиотеку доступа. 


Akella, можешь описать, как именно это сделать? Сейчас у меня тоже стоит вопрос по пенреносу базы на дургой комп. Перенесла все указанные здесь dll в ту же папочку, где находится сама программа (программа и база, я так понимаю, могут находиться и не в одном месте). После всего проделанного получаю такую ошибку
Код

Unable to complete network request to host "localhost".

Failed to locate host machine.

Undefined service gds_db/tcp.

Что нужно сделать для её устранения?
PM MAIL   Вверх
Gluttton
Дата 18.11.2009, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 7
Всего: 54



holodnaya, как вариант в клиентском приложении в строке подлкючения не изменен тип сервера...


--------------------
Слава Україні!
PM MAIL   Вверх
Akella
Дата 18.11.2009, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



holodnaya, мало информации. Я не телепат.
PM MAIL   Вверх
Akella
Дата 18.11.2009, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Компоненты доступа, строка подключения, версия сервера.

Добавлено через 2 минуты и 34 секунды
Цитата(holodnaya @  18.11.2009,  13:00 Найти цитируемый пост)
Unable to complete network request to host "localhost".

Это означает, что у тебя проблемы с сетью

Если ты подключаешь локально, то убери localhost: из строки подключения

Добавлено через 3 минуты
Цитата(holodnaya @  18.11.2009,  13:00 Найти цитируемый пост)
Undefined service gds_db/tcp.

У тебя хоть firebird установлен?
PM MAIL   Вверх
holodnaya
Дата 18.11.2009, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



Цитата(Akella @  18.11.2009,  17:48 Найти цитируемый пост)
Компоненты доступа, строка подключения, версия сервера.


Использую FireBird 2.1.3, из делфи обращаюсь к базе через стандартные компоненты IBX.
Код

IBDatabase1.DatabaseName := 'localhost:C:\test\Student.FDB';
   IBDatabase1.Params.Add('user_name=SYSDBA');
   IBDatabase1.Params.Add('password=masterkey');
   IBDatabase1.Params.Add('lc_ctype=win1251');

 
Цитата(Akella @  18.11.2009,  17:48 Найти цитируемый пост)
У тебя хоть firebird установлен? 

нет, не установлен. Только не смейся.
Прочитала тему, где THandle советовался по поводу выбора СУБД. После прочтения у меня создалось впечатление, что FireBird можно не устанавливать на том компе, где будет прога и сама база (достаточно только кинуть пару dll). Сейчас перечитала, и четкого убеждения в этом нет... Возможно, тогда у меня сложилось ошибочное мнение. 
Получается, что и на компьютер, куда переносим базу, нужно устанавливать FireBird? И просто копированием нескольких библитек не обойтись?


Это сообщение отредактировал(а) holodnaya - 18.11.2009, 23:23
PM MAIL   Вверх
Gluttton
Дата 18.11.2009, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 7
Всего: 54



Цитата(holodnaya @  18.11.2009,  23:19 Найти цитируемый пост)
Получается, что и на компьютер, куда переносим базу, нужно устанавливать FireBird? И просто копированием нескольких библитек не обойтись?

Не обязательно. Можно и обойтись.

Firebird бывает трех типов:
- Firebird Super Server;
- Firebird Classic Server;
- Firebird Embedded.

Первые два требуют инсталяции, а для работы с третьим достаточно рядом с испольняимым файлом поместить необходимые компоненты (теоретически файлов должно быть несколько, сейчас уже не вспомню, где об этом читал, но на практике, достаточно и одной библиотеки).
Цитата

Firebird Embedded Server – предназначен для встраиваемых баз данных. Состоит из одной dll – fbembed.dll, которая включает в себя клиент и сервер Firebird Super Server. Firebird Embedded не требует установки на клиентской рабочей станции. Достаточно просто скопировать fbembed.dll и еще несколько файлов клиенту на компьютер.

Источник.

А теперь прокоментирую свой предыдущий пост:

Цитата(Gluttton @  18.11.2009,  16:33 Найти цитируемый пост)
holodnaya, как вариант в клиентском приложении в строке подлкючения не изменен тип сервера...


Не знаю как в Delphi, но в C# для подключения к БД используется строка подключения, в которой среди прочего указывается и тип сервера (точно не скажу, но помоему 0 - Classic, Super, 1 - Embedded). Так вот, если я например создаю программу-клиента для работы с БД и использую Classic, а потом вдруг хочу свою программу заставить работать на другом ПК с Embedded, то без внесения соответствующих изменений в строку подключения у меня ничего не выйдет!

Про строки подключения.

Почитал, что там пишут, по ходу тип сервера используется только при использовании NET-провайдера...


Это сообщение отредактировал(а) Gluttton - 19.11.2009, 00:10


--------------------
Слава Україні!
PM MAIL   Вверх
Gluttton
Дата 18.11.2009, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 7
Всего: 54



В googl'e  набираешь Firebird Embedded, переходишь по первым ссылкам и качаешь Embedded версию...

Распаковываешь, находишь ..\doc\README_embedded.txt и читаешь smile ...

А если с английским туго, то поищи - googl на запросы Firebird Embedded Delphi (на русском языке) откликается только так smile ...

Добавлено через 2 минуты и 14 секунд
Цитата(holodnaya @  18.11.2009,  23:53 Найти цитируемый пост)
Может, проще тогда и у себя переустановить на Embedded?

Если лень разбираться smile, то можно и попробовать, но не факт, что это приведет к успешному решению проблемы. Я например, добовлял дополнительную функциональность в клиенсткое приложение, позволяя пользователю выбирать и тип сервера и расположение БД и имя и прочее и прочее...

Добавлено через 9 минут и 32 секунды
Кстати вот, что там пишут:
Цитата

  2.2. Database access

    Client access can be only via the local protocol, 
    i.e. NOT a TCP/IP connection string that includes 
    the server name "localhost" or IP address 127.0.0.1. 

Т.е. Akella про localhost очень правильно сказал...


--------------------
Слава Україні!
PM MAIL   Вверх
holodnaya
Дата 18.11.2009, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



Цитата(Gluttton @  18.11.2009,  23:33 Найти цитируемый пост)
если я например создаю программу-клиента для работы с БД и использую Classic, а потом вдруг хочу свою программу заставить работать на другом ПК с Embedded,

Как раз это я и пытаюсь сделать.
Может, проще тогда и у себя переустановить на Embedded?
Gluttton, спасибо за содержательные ответы. Обязательно прочитаю. smile 
Цитата(Gluttton @  18.11.2009,  23:53 Найти цитируемый пост)
Если лень разбираться 

Мне интересно и я разберусь... просто для себя. 

Это сообщение отредактировал(а) holodnaya - 19.11.2009, 00:00
PM MAIL   Вверх
Akella
Дата 19.11.2009, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(holodnaya @  18.11.2009,  23:19 Найти цитируемый пост)
нет, не установлен. Только не смейся.

 smile

Добавлено через 43 секунды
- У меня машина не едет. Машина без двигателя. Почему не едет, в чём может быть проблема? smile

Добавлено через 5 минут и 28 секунд
Цитата(holodnaya @  18.11.2009,  23:19 Найти цитируемый пост)
Прочитала тему, где THandle советовался по поводу выбора СУБД. После прочтения у меня создалось впечатление, что FireBird можно не устанавливать на том компе, где будет прога и сама база (достаточно только кинуть пару dll). Сейчас перечитала, и четкого убеждения в этом нет... Возможно, тогда у меня сложилось ошибочное мнение. 

Начнём с того, что нельзя подключаться к встраиваемой версии птички через сеть, как это делаешь ты
Код
IBDatabase1.DatabaseName := 'localhost:C:\test\Student.FDB';

Весьма затруднительно будет использовать IBX и встраиваемую версию сервера. Хотя.... можно, конечно, закинуть в Windows\system32\ все файлы Firebird Embedded и затем переименовать embedd.dll в gds32.dll.
Зачем переименовывать? Просто в  IBX нет возможности явно указать имя библиотеки доступа, а по сему в этих компонентах зашито использование библиотеки gds32.dll, которая должна быть расположена в Windows\system32\.
PM MAIL   Вверх
Akella
Дата 19.11.2009, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(holodnaya @  18.11.2009,  23:19 Найти цитируемый пост)
Получается, что и на компьютер, куда переносим базу, нужно устанавливать FireBird? И просто копированием нескольких библитек не обойтись?

О какой конфигурации идёт речь? Об обычной или об встраиваемой? О клиентской части или о серверной?

Кратко.
Если речь идёт об обычной конфигурации firebird (НЕ Embedded), то на серверной машине (там где будет база) устанавливается полная нормальная версия птички. А на другом сетевом компьютере нужно использовать 2 файла: fbclient.dll и msvcr71.dll.
Строка подключения server_name:c:\base\data.fdb


Если речь идёт о встраиваемой конфигурации firebird (Embedded - локальная версия сервера), то на компьютер (там где будет база) копируются в папку приложения (обычно так) все файлы Firebird Embedded . Нет возможности для работы по сети и даже 2 приложения не могут получить одновременный доступ к базе. С одной и той же бозой можно работать двумя приложениями, но подключаться они должны через одну и ту жу библиотеку доступа.
Строка подключения c:\base\data.fdb

Расширение файла (*.FDB) никак не влияет на доступ к базе. Имя базы может быть с любым расширением и даже состоять из одной буквы без расширения. Не советую брать расширение *.GDB,  т.к. база в этом случае может тормозить из-за того, что система восстановления Windows будет делать резервную копию базы.

Добавлено через 2 минуты и 31 секунду
Цитата(Gluttton @  18.11.2009,  23:33 Найти цитируемый пост)
Первые два требуют инсталяции, а для работы с третьим достаточно рядом с испольняимым файлом поместить необходимые компоненты (теоретически файлов должно быть несколько, сейчас уже не вспомню, где об этом читал, но на практике, достаточно и одной библиотеки).

Думаю, что недостаточно одной библиотек. Как минимум три. Но, согласно, лицензии (наверное (я не читал)) нельзя разбивать на части файлы.

Добавлено через 5 минут и 31 секунду
Собственно эти файлы и есть встраиваемый сервер:
ib_util.dll
icudt30.dll
icuin30.dll
icuuc30.dll

А СКОРЕЕ ВСЕГО ПОНАДОБЯТСЯ ещё и эти:
msvcp71.dll
msvcr71.dll

Ну и собственно библиотека доступа:
fbembed.dll

А ещё файл конфигурации:
firebird.conf

И вдобавок файл сообщений:
firebird.msg

Добавлено через 7 минут и 21 секунду
А ещё могут понадобиться файлы из папки intl: 
fbintl.dll
fbintl.conf

А также все файлы из папки: udf

Лучше не разрывать сервер на части smile
PM MAIL   Вверх
Deniz
Дата 19.11.2009, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(Akella @  19.11.2009,  03:41 Найти цитируемый пост)
а по сему в этих компонентах зашито использование библиотеки gds32.dll, которая должна быть расположена в Windows\system32\
gds32.dll (переименованная из fbembed.dll) может лежать рядом с программой, ничего копировать в Windows\system32\ не надо.

holodnaya, про то, какие файлы должны где лежать уже не один раз писали, читаем файл \doc\README_embedded.txt из архива embedded сервера, для разных версий сервера (1.5, 2.х) набор файлов меняется.

Далее общие рекомендации по разработке и установке ПО.
На месте разработчика лучше установить полную версию SuperServer. Все подключения к БД осуществлять через localhost:disk:\local\path\to\database\dbname.fdb исключать localhost не рекомендую.

При установке ПО на другой комп есть 2 варианта:
1. Если с одной БД работают несколько человек/приложений, то устанавливаем полный сервер и подключения server:disk:\local\path\to\database\dbname.fdb
2. Если с одной БД работает 1 человек/приложение достаточно скопировать embedded сервер см. выше.

PS:holodnaya, нужно было начинать новую тему.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akella
Дата 19.11.2009, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Deniz @  19.11.2009,  06:35 Найти цитируемый пост)
gds32.dll (переименованная из fbembed.dll) может лежать рядом с программой, ничего копировать в Windows\system32\ не надо.

Хм.. буду знать. Хотя я использовал IBX 1 раз очень давно.
PM MAIL   Вверх
holodnaya
Дата 19.11.2009, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



Спасибо вам огромное за помощь. Очень выручили.  smile 
Оказывается, нужно было просто очень внимательно прочитать ReadMe. Положить все файлики, которые указал Akella (они же указаны в ReadMe),   в папочку с прогой и в файле 
firebird.conf указать свою RootDirectory (в readMe описано, как и что именно подставлять).
и в приложении у IBDatabase у свойства DatabaseName убрать localhost.
PM MAIL   Вверх
Deniz
Дата 19.11.2009, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(Akella @  19.11.2009,  12:43 Найти цитируемый пост)
Хм.. буду знать. Хотя я использовал IBX 1 раз очень давно.
у меня есть такие проекты, пока не было embedded, приходилось ставить полный сервер.
PS: Если вспомнить как работает загрузка модуля (dll) в Windows, то сначала dll'ка ищется в текущей папке, а потом в путях из переменой PATH


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akella
Дата 19.11.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(holodnaya @  19.11.2009,  10:53 Найти цитируемый пост)
убрать localhost. 

убрать localhost: - ведь каждый символ имеет значение, ошибка и уже ты к базе не подключишься

Добавлено через 1 минуту и 22 секунды
Цитата(Deniz @  19.11.2009,  12:36 Найти цитируемый пост)
PS: Если вспомнить как работает загрузка модуля (dll) в Windows, то сначала dll'ка ищется в текущей папке, а потом в путях из переменой PATH

просто программа до запуска DLL-ки может изменить текущую директорию и там не окажется библиотеки доступа
PM MAIL   Вверх
Deniz
Дата 19.11.2009, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(Akella @  19.11.2009,  17:10 Найти цитируемый пост)
просто программа до запуска DLL-ки может изменить текущую директорию и там не окажется библиотеки доступа
под "в текущей папке" имелось ввиду папка программы, причем если в Delphi изменить текущую директорию командой SetCurrentDir(...), то dll'ка все равно грузится из папки программы.

Автору, если вопрос решен, помечай как решенный.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akella
Дата 19.11.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Deniz @  19.11.2009,  15:16 Найти цитируемый пост)
под "в текущей папке" имелось ввиду папка программы,

Есть функция GetCurrentDir, которая возвращает текущую папку. По-умолчанию это папка запуска программы. Но и есть процедура SetCurrentDir, которая может изменить папку по-умолчанию. Я это имел ввиду.
PM MAIL   Вверх
Deniz
Дата 20.11.2009, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(Akella @  19.11.2009,  19:36 Найти цитируемый пост)
Но и есть процедура SetCurrentDir, которая может изменить папку по-умолчанию.
прочитай внимательнее
Цитата(Deniz @  19.11.2009,  18:16 Найти цитируемый пост)
если в Delphi изменить текущую директорию командой SetCurrentDir(...), то dll'ка все равно грузится из папки программы.



--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akella
Дата 20.11.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Я не утверждаю smile, это моё предположение.
PM MAIL   Вверх
Deniz
Дата 20.11.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Akella, я специально у себя провел маленький эксперимент
Код
procedure TForm1.Button1Click(Sender: TObject);
var IBLibrary : integer;
    s : string;
begin
  IBLibrary:=LoadLibrary('MyLib.dll');
  if (IBLibrary > HINSTANCE_ERROR) then s:='Library loaded OK'
                                   else s:='Error';
  if IBLibrary > HINSTANCE_ERROR then FreeLibrary(IBLibrary);
  Memo1.Lines.Add(s);
end;

procedure TForm1.Button2Click(Sender: TObject);
var s : string;
begin
  s:='Curr dir: ' + GetCurrentDir; Memo1.Lines.Add(s);
  s:='Set curr dir: d:\';
  if SetCurrentDir('d:\') then s:=s + ' OK' else s:=s + ' error';
  Memo1.Lines.Add(s);
  s:='Curr dir: ' + GetCurrentDir; Memo1.Lines.Add(s);
end;
MyLib.dll переименованная из gds32.dll. Код по загрузке/выгрузке dll взят из исходников IBX


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
SergXP
Дата 9.12.2009, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



эх... что-то не получается у меня приконнектиться к файлу FDB.
Сделал все как вы сказали, но результата нет :(
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
   IBDatabase1.DatabaseName := 'D:\base.FDB';
   IBDatabase1.Params.Add('user_name=SYSDBA');
   IBDatabase1.Params.Add('password=masterkey');
   IBDatabase1.Params.Add('lc_ctype=win1251');
   if IBDatabase1.Connected=true then ShowMessage('Соединение Установлено!');
end;

procedure TForm1.Button2Click(Sender: TObject);
var IBLibrary : integer;
    s : string;
begin
  IBLibrary:=LoadLibrary('fbembed.dll');
  if (IBLibrary > HINSTANCE_ERROR) then s:='Library loaded OK'
                                   else s:='Error';
  //if IBLibrary > HINSTANCE_ERROR then FreeLibrary(IBLibrary); // я так понимаю, это ф-ция выгрузки dll
  Memo1.Lines.Add(s);
end;

DLL подгружается нормально...
Закинул все файлы от embedded толку нет, нет соединения :(
Что не так? Подскажите пожалйуста  smile 
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
Akella
Дата 9.12.2009, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



fbembed.dll нужно переименовать в GDS32.DLL
PM MAIL   Вверх
SergXP
Дата 9.12.2009, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



переименовал, результат тот же :( Не могли бы вы показать на простом примере как подключиться к файлу БД?
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
Deniz
Дата 9.12.2009, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(SergXP @  9.12.2009,  16:02 Найти цитируемый пост)
Что не так? Подскажите пожалйуста
во-первых, неплохо бы ошибку описать.
Во-вторых, судя по названию компонент "IBDatabase1" это IBX (стандартные компоненты Delphi закладка InterBase). В них нет возможности указать клиентскую либу, они умеют работать только с gds32.dll, сл-но переименовываем fbembed.dll в gds32.dll.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
SergXP
Дата 9.12.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



стоп! вроде заработало! Спасибо!
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
Deniz
Дата 9.12.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Чуток не успел, опиши как пробуешь


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
SergXP
Дата 9.12.2009, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



Deniz, спасибо! Теперь соединение есть smile 
разбираюсь с InterBase... 
установил DBGrid, DataSource, IBQuery ну и сам IBDataBase.
При выполнении кода, 
Код

IBQuery1.SQL.Add('SELECT * FROM PROJECTS;');
IBQuery1.Active:= true;


Получаю Error. Transaction not assigned
Где можно найти хорошие example по данному вопросу?
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
Deniz
Дата 9.12.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



SergXP, тебе с IBX'ом пример нужен?
Какая версия Delphi? Вроде были там (в поставке с 7) примеры, если память не изменяет проект "\Delphi_root\Demos\Db\IBMastApp\"


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
SergXP
Дата 9.12.2009, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



спасибо... smile 
примерчик не плохой, но тяжелый пипец  smile 
сижу гуглю, но инфа не совсем по теме
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
SergXP
Дата 9.12.2009, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



Вроде нашел кое-что. может кому пригодится http://www.ibase.ru/devinfo/ibx.htm
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
Akella
Дата 9.12.2009, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(SergXP @  9.12.2009,  14:53 Найти цитируемый пост)
Получаю Error. Transaction not assigned

кинь на форму ещё и транзакцию, пропиши её в компонентах.


И вот ещё пример (корявый, правда, недоделанный, но всё же связи увидишь)
http://forum.vingrad.ru/index.php?showtopi...t&p=1741702
PM MAIL   Вверх
Deniz
Дата 10.12.2009, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



SergXP, напиши что тебе надо, может сделаем примерчик.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
SergXP
Дата 10.12.2009, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



Deniz,  smile  спасибо. Вроде бы теперь все получилось, разобрался сам. Отправляю запрос SQL, вижу результат в DBGrid  smile то что мне и нужно было)) теперь возникли другие вопросы, создам новую тему, чтобы здесь не мусорить.
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/
PM MAIL WWW ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.1750 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.