вторник, 21 октября 2008 г.

Начинаем осваивать Firebird Embedded

Firebird SQL server - система управления базами данных, основанная на открытом исходном коде Interbase 6.0. Сервер Firebird разрабатывается под различные платформы: Linux, Solaris, Windows, Unix, MacOS, под 64-х и 32-х битную операционные системы. Firebird является бесплатным более развитым аналогом своего предшественника - Interbase.

Firebird SQL Server существует в 3-х вариантах:

  • Firebird Super Server - все клиентские коннекты обслуживаются одним серверным процессом, имеется общий клиентский кеш;
  • Firebird Classic Server - на каждое клиентское подключение создает отдельный серверный процесс;
  • Firebird Embedded - предназначен для встраиваемых баз данных;

Если у вас нет достаточного опыта работы с Firebird SQL, то начинайте с Firebird Super Server

Скачать последние версии Firebird можно здесь: скачать Firebird Embedded.

Драйвер для Firebird Embedded

Помимо самого SQL сервера, вам понадобится драйвер для работы с Firebird из различных средств разработки. Я рекомендую воспользоваться IBProvider . Этот OLE DB provider, позволяет работать со всеми версиями Interbase и Firebird, включая Firebird Embedded.

Технология OLE DB позволяет разрабатывать приложения под большинство известных средств разработки для Windows: Delphi, ADO, Visual Studio.Net, VBScript, VBA, C++, C#, ASP, ASP.Net и т.Д. Скачать IBProvider можно на официальном сайте: Firebird provider и Interbase driver.

Утилиты администрирования Firebird Embedded

В стандарнтую поставку Firebird входит утилита для его администрирования: isql.Exe. Утилита позволяет выполнять простые функции администрирования БД: создание, удаление, изменение структуры, создание таблиц и связей. Так же предусмотрена возможность выполнения SQL-запросов в режиме командной строки.

Помимо isql существует различные графические утилиты администрирования, позволяющие работать с Firebird. Большинство из них бесплатно для жителей России. Наиболее популярные из них: IBExpert, Flame Robin, Blaze Top, IB/FB Development Studio.

Инструкции по созданию новой БД, формированию структуры таблиц и связей опубликована тут: Firebird SQL Server.

суббота, 23 августа 2008 г.

Firebird Embedded server для Linux

В состав Firebird classic server для Linux входит библиотека libfbembed.so которая используется для локальных подключений.Она содержит полноценный Firebird SQL Server. Этим объясняется её столь большой размер по сравнению с клиентом для Firebird Superserver.Локальные подключения через libfbembed.so являются частью процесса пользовательского приложения, а не отдельным серверным процессом.Фактически это и есть Firebird Embedded Server.

Пользователь библиотеки должен иметь доступ к файлу базы данных на уровне файловой системы как в Firebird Embedded для Windows.Такио образом libfbembed.so фактически является встраиваемым сервером Embedded Firebird.

Отличия Firebird Embedded для Linux и для Windows

  • Firebird Classic для Linux не требует эксклюзивной блокировки для файла базы данных. Она остается доступной для остальных клиентов.
  • Еще одно важное отличие - Embedded Firebird для Linux контролирует доступ к базе через sequrity.fdb.
  • и наконец, вы не можете просто скопировать libfbembed.so и начать использовать Firebird Embedded для доступа к локальным базам данных.Для Linux вам всегда необходим корректно установленный Firebird SQL Server версии firebird classic или firebird superserver.

пятница, 22 августа 2008 г.

Firebird Embedded server – установка и настройка

Для начала работы необходимо скачать Firebird Embedded с сайта SourceForge. Обычно он называется Firebird-n.n.n.xxxx_embed_win32.zip, где n.n.n.xxxx – это версия и билд сервера Firebird SQL.

Для использования Embedded Firebird в приложении выполните следующие шаги:

  • Скопируйте библиотеку fbembedded.dll в папку с приложением.
  • Переименуйте библиотеку в fbclient.dll или в gds32.dll, для того чтобы ваше приложение смогло обнаружить клиентскую часть Firebird Embedded
  • Некоторые старые приложеняи ищут клиента gds32.dll, в то время как утилиты командной строки isql, gbak и т.п используют fbclient. Вы можете сделать 2 копии: gds32.dll и fbclient.dll.
  • Скопируйте firebird.msg и ib_util.dll в папку с программой.
  • Скопируйте aliases.conf – это позволит использовать псевдонимы путей к БД при подключении
  • Если необходимо изменить root директорию скопируйте firebird.conf
  • Для Firebird 2 и выше скопируйте все файлы по маске icu*.dll.
  • Скопируйте содержимое папок udf и intl.

Теперь, если вы запустите приложение, оно будет использовать Embedded Firebird Server.Допускается любая комбинация имени пользователя и пароля, но избегайте пустых строк. Вы можете запускать несколько версий Firebird Embedded на одном компьютере. К примеру firebird 1.5.3 и Firebird 2.5.Помните о том, что хотя права пользователя при подключении не проверяются, SQL привилегии остаются в силе.Вы всегда можете использовать пользователя SYSDBA с любым паролем.

Установка Firebird Embedded в произвольной директории

  • скопируйте firebird.conf в папку с программой и измените в нем параметр RootDirectory
  • вы так же можете поменять значение переменной окружения.
  • Скопируйте файлы firebird.msg, aliases.conf и папки intl udf в папку установки сервера Firebird Embedded.
  • Следующие файлы должны остаться в папке с программой: firebird.conf, ib_util.dll, для Firebird 2 и выше: файлы по маске icu*.dll.

Embedded Firebird – Встраиваемая СУБД

Firebird Embedded – это Firebird SQL SuperServer и клиент помещенный в одну DLL (fbembed.dll).

Впервые Embedded Firebird появился в Firebird 1.5. Он был специально разработан для облегчения распространения готовых приложений использующих Firebird в качестве базы данных.

Вы можете использовать несколько Firebird Embedded серверов одновременно,так же несколько приложений могут подключаться к одному встраиваемому серверу Firebird в один момент.Но вы не можете подключаться к одной БД из разных процессов Firebird Embedded.После успешного подключения доступ к файлу БД блокируется для монопольной работы.

При подключении к Firebird Embedded Server нельзя указывать в строке подключения имя хоста (даже localhost).Однако если в системе запущен полноценный Firebird SQL Server то доступ к БД будет так же возможен и из сети.

Безопасность в Embedded Firebird

Security.fdb не используется в версии Firebird Embedded.Любой может подключиться и работать с базой, достаточно лишь иметь непосредственный доступ к файлу БД.

Недостатки Firebird Embedded

Самый главный недостаток firebird embedded – невозможность одновременных подключений.Один процесс Embedded Firebird блокирует файл БД для монопольного доступа.

Firebird Embedded - Особенности реализации

  • Записи в реестре, касающиеся Firebird, в Embedded Firebird Server игнорируются.
  • Доступ к базе данных осуществляется только по локальному протоколу без указания IP или имени хоста (localhost)
  • При подключении клиент блокирует файл БД.
  • Аутентификация не используется, но пользователь указанный в строке подключения используется при определении привилегий в SQL.
  • Firebird Embedded будет работать при запущенном сервере Firebird SQL Server.

Рекомендации по использованию Embedded Firebird

  • При разработке и отладке пользуйтесь обычной версией сервера. Это упростит отладку будущего приложения.
  • Используйте одинаковые версии Firebird SQL Server и Firebird Embedded.