Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2010, 14:42   #21
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Вот я прописал в событии OnCreate следующее:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Form1.pFIBDatabase1.DBName:=ExtractFilePath(Application.ExeName) + '\BASE.FDB';
 Form1.pFIBDatabase1.Connected:=True;
 Form1.pFIBTransaction1.DefaultDatabase:=Form1.pFIBDatabase1;
 Form1.pFIBTransaction1.Active:=True;
 Form1.pFIBQuery1.Database:=Form1.pFIBDatabase1;
end;
Все ли верно я прописал? Или еще что-то нужно? Свойство Connected у компонента pFIBDatabaseName1 поставил в False, т.к. прописал вышенаписанный код, и свойство Active у компонента pFIBTransaction1 поставил в False по той же причине. Компилируется и запускается программа без ошибок.
Цитата:
Упустил важный момент. Для версии 2.1 embedded FB файл fbembed.dll нужно переименовать в gds32.dll.
А что делать мне с моей библиотекой fbclient.dll? Путь к этой библиотеке прописывается в свойстве LibraryName у компонента pFIBDataBase1. Тоже использовать такой код:
Код:
 Form1.pFIBDatabase1.DBName:=ExtractFilePath(Application.ExeName) + '\fbclient.dll';
???
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 03.03.2010, 15:32   #22
Karabash
Форумчанин
 
Регистрация: 26.07.2009
Сообщений: 216
По умолчанию

Слеш подставлять не надо. Функция оставляет последнюю косую:
Код:
 Form1.pFIBDatabase1.DBName:=ExtractFilePath(Application.ExeName) + 'BASE.FDB';
С клиентской библиотекой FB ничего не делать. При сетевой работе с ней автоматически работают драйверы FIB+ или IBX, а при работе в монопольном режиме (embedded) она не нужна.
Karabash вне форума Ответить с цитированием
Старый 03.03.2010, 15:49   #23
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Восклицание

Немного подправил код сейчас (после каждых изменений проверяю работу программы на компе с Windows Vista HB):
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Form1.pFIBDatabase1.DBName:=ExtractFilePath(Application.ExeName) + '\BASE.FDB';
 Form1.pFIBDatabase1.LibraryName:=ExtractFilePath(Application.ExeName) + '\fbclient.dll';
 Form1.pFIBDatabase1.Connected:=True;
 Form1.pFIBDatabase1.Open(True);
 

 Form1.pFIBTransaction1.DefaultDatabase:=Form1.pFIBDatabase1;
 Form1.pFIBTransaction1.Active:=True;
 
 Form1.pFIBQuery1.Database:=Form1.pFIBDatabase1;

 Form1.pFIBDataSet1.Database:=Form1.pFIBDatabase1;
 Form1.pFIBDataSet1.Transaction:=Form1.pFIBTransaction1;
 Form1.pFIBDataSet1.AutoCommit:=True;
 Form1.pFIBDataSet1.Active:=True;

end;
В итоге, при запуске программы на другом компе сначала появляется ошибка под номером "2", а потом под номером "3". Скрины ошибок во вложении. Что я там неправильно делаю?
Изображения
Тип файла: jpg 2.jpg (268.4 Кб, 120 просмотров)
Тип файла: jpg 3.jpg (44.4 Кб, 48 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 03.03.2010, 15:57   #24
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Karabash Посмотреть сообщение
С клиентской библиотекой FB ничего не делать. При сетевой работе с ней автоматически работают драйверы FIB+ или IBX, а при работе в монопольном режиме (embedded) она не нужна.
Учитывая, что в embedded версии клиентская библиотека содержит в себе как клиент, так и сервер БД, то она совсем "не нужна". Совершенно "бесполезная" штуковина.
Если можно указывать путь к клиентской библиотеке, то можно её и не переименовывать и иничего с ней не делать. Иногда требуется её переименовать в gds32.dll только по тому, что некоторые библиотеки (в том числе и IBX, если мне не изменяет память) завязаны на Interbase в их коде жестко вбито именно "gds32.dll".
FIB+ и IBX - это не драйверы, а обычные обёртки над Interbase/Firebird API. Они тупо вызывают функции клиентской библиотеки. Именно поэтому не требуется установка никаких примочек для BDE, ADO,... Так же есть провайдеры и для ADO, ADO.NET,... в случае их использования, нужно будет пользователю устанавливать и их дополнительно. Эти провайдеры так же будут работать с клиентской библиотекой Firebird, но тут будет преимущество в унифицированном доступе к БД. Это даёт возможность лёгкого перехода между разными СУБД, т.е. переход с Firebird, допустим, на SQL Server может занять в идеальном случае 5 минут и придётся изменить пару строк кода.

Цитата:
Сообщение от artemavd Посмотреть сообщение
Код:
Form1.pFIBDatabase1.Connected:=True;
Form1.pFIBDatabase1.Open(True);
Зачем нужны обе эти строки?
Form1.pFIBDatabase1.Connected:=True уже устанавливает соединение. Это полный эквивалент Form1.pFIBDatabase1.Open. Что вот означает параметр True я уже не помню. Может он наоборот отключает от БД. В любом случае, нужно оставить одну из этих строк, ибо делают они одно и то же.
Цитата:
Сообщение от artemavd Посмотреть сообщение
В итоге, при запуске программы на другом компе сначала появляется ошибка под номером "2", а потом под номером "3". Скрины ошибок во вложении. Что я там неправильно делаю?
В тексте ошибки №2 ведь ясно написали, что не найден файл "F:\firebird.msg". Следовательно, нужно разбираться почему он его там ищет, а не в "F:\Телефонная книжка\". Ну а 3 ошибка говорит, что соединение с БД не установлено.

Последний раз редактировалось pu4koff; 03.03.2010 в 16:12.
pu4koff вне форума Ответить с цитированием
Старый 03.03.2010, 16:07   #25
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Сорри, сначала не заметил, что последний пост обновился .
Цитата:
В тексте ошибки №2 ведь ясно написали, что не найден файл "F:\firebird.msg". Следовательно, нужно разбираться почему он его там ищет, а не в "F:\Телефонная книжка\".
Может для него тоже нужно использовать
Код:
ExtractFilePath(Application.Exename) + '\firebird.msg'?
Цитата:
Ну а 3 ошибка говорит, что соединение с БД не установлено.
Так вроде Connect=True...
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 03.03.2010 в 17:53.
artemavd вне форума Ответить с цитированием
Старый 18.03.2010, 18:56   #26
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Восклицание

пост №25 пока что не нужен.

Столкнулся с проблемой. Пытаюсь использовать Firebird Embedded. Переименовал файл fbembed в fbclient и кинул его в папку с программой и в папку с БД. Теперь, когда создал БД через IBExpert и пытаюсь ее зарегистрировать, то получаю ошибку как на скрине. Что неправильно я сделал? Вроде все файлы кинул, файл переименовал.
Изображения
Тип файла: jpg Безымянный.jpg (11.4 Кб, 121 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 18.03.2010 в 18:59.
artemavd вне форума Ответить с цитированием
Старый 18.03.2010, 19:18   #27
Karabash
Форумчанин
 
Регистрация: 26.07.2009
Сообщений: 216
По умолчанию

Но fbembed.dll - это вовсе не клиент, а сам сервер и переименовывать его нельзя.
Сам IBExpert со "встроенным" FB не работает. Надо устанавливать полную сетевую FB.
Затем, в IBExprt при регистрации базы, в диалоге есть поле "Файл клиентской библиотеки", в котором можно указать путь к файлу, если его нет в общедоступном каталоге (как правило %WINDOWS%\System32\). Но при установке полной FB установщик копирует клиентскую библиотеку в этот каталог, поэтому указывать путь, собственно, нет необходимости.
Karabash вне форума Ответить с цитированием
Старый 18.03.2010, 19:30   #28
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Дык делал-то вроде по этой ссылке http://embedded-firebird.blogspot.co...ed-server.html
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 18.03.2010, 19:39   #29
Karabash
Форумчанин
 
Регистрация: 26.07.2009
Сообщений: 216
По умолчанию

Не стал бы я доверять этому ресурсу. Достаточно было увидеть одну фразу: "Скопируйте библиотеку fbembedded.dll в папку с приложением."
Откуда появилась библиотека с таким именем в дистрибутиве? Нет там такой. Самые достоверные сведения по FB (помимо сайта разработчиков) - это, конечно ibase.ru.
Karabash вне форума Ответить с цитированием
Старый 31.03.2010, 16:55   #30
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Итак , есть готовая полностью программа и установочный диструбутив Firebird 2.1.3.18185 . Если я установлю этот сервер на комп заказчика и буду использовать функцию ExtractFilePath для компонентов FIBPlus, то будет ли работать так программа и СУБД? Хочу именно такой вариант попробовать, с установкой сервера.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка программы на удаленный компьютер joker Win Api 4 12.07.2009 13:22
FireBird Д'якон БД в Delphi 2 04.12.2008 11:15
FireBird 1.5.4 Nikola__ БД в Delphi 2 17.11.2008 14:42
Безопасная связка компьютер-компьютер, как организовать наилучшую защиту Alar Операционные системы общие вопросы 3 17.02.2008 21:15
Делаю сайты, пишу маленькие/большие скрипты. Пишу веб-приложения и приложения под Windows. SkyM@n Фриланс 3 29.12.2007 16:21