Firebird для windows 8.1
Содержание:
- Functions
- Интеграция 1С и C#. Обращение к 1С через COM. Создание номенклатуры и выполнение запроса к 1С из C# на примере интеграции с Союз-PLM (система информационной поддержки жизненного цикла изделий). Обработка «Загрузка заказа на сборку». (ERP)
- Шифрование БД под управлением Firebird 3.0
- MacOS X
- IMPORT FOREIGN SCHEMA options
- Installation
- Установка Firebird
- Тестирование БД мобильного Delphi-приложения
- 2011
- Компонент TFDTransaction
- CREATE SERVER options
- Варианты
- Добавление поддержки СУБД Firebird в фреймворк Laravel
- API подключения
- Основные возможности СУБД
Functions
As well as the standard and
functions, provides the following user-callable utility functions:
-
firebird_fdw_version()
Returns the version number as an integer.
-
firebird_fdw_close_connections()
Closes all cached connections from PostgreSQL to Firebird in the current session.
-
firebird_fdw_server_options(servername TEXT)
Returns the server-level option settings for the named server (either the options provided
to or if not provided, the respective default values); example:( 1.2.0 and later)
-
firebird_fdw_diag()
Returns ad-hoc information about the Firebird FDW in key/value form, example:
-
firebird_version()
Returns the Firebird version numbers for each foreign server
defined in the current database, for example:Note that this function will open a connection to each Firebird server
if no previously cached connection exists. It will return a row for each
user mapping defined, even if those map to the same Firebird server.( 1.2.0 and later)
Интеграция 1С и C#. Обращение к 1С через COM. Создание номенклатуры и выполнение запроса к 1С из C# на примере интеграции с Союз-PLM (система информационной поддержки жизненного цикла изделий). Обработка «Загрузка заказа на сборку». (ERP)
Союз-PLM представляет собой полнофункциональный программный комплекс для решения широкого спектра задач управления инженерной технической информацией наукоемких изделий и сложных инженерных объектов в области машиностроения, приборостроения, архитектуры, строительства.
На практике, это управление конструкторской документацией, интегрированное с САПР, бизнес-процессы, файловый архив. Все это работает в SQL и шевелится с помощью скриптов на C#. Скрипты свободно отлаживаются в MS Visual Studio. Подробнее смотрите на их сайте: http://www.programsoyuz.ru/products/system-soyuz-plm.html Редактирование, конструирование и использование бизнес-процессов на порядок лучше систем на базе 1С из тех, что я изучил.
1 стартмани
Шифрование БД под управлением Firebird 3.0
Из песочницы
В современном информационном мире, информация играет значительную роль в жизни человека, общества и государства. Рост размера накапливаемых и обрабатываемых данных подымает вопросы об их хранении и обеспечении конфиденциальности. Уже существует немало технических решений и предложений для решения подобных задач. Среди них конечно же есть и системы управления базами данных (СУБД) которые поддерживают шифрование хранимых данных. Вот об одном из таких решений и пойдёт речь.
В апреле 2016 года вышла новая версия СУБД Firebird под номером 3. Из нововведений, среди прочего, появилось и немало механизмов защиты хранимых и передаваемых данных. Там есть и защита канала передачи данных, есть управление пользователями, а также есть шифрование самой БД, которое реализовано как прозрачное шифрование на уровне страниц данных. Реализуется это всё с помощью написания специальных расширений для Firebird. Можно конечно и самому разобраться и написать эти расширения, но почему бы не взять существующие. Тем более, что для написания, как минимум, нужно понимать в криптографии, иметь на вооружении знания какого-нибудь криптографического пакета и разобраться с новым С++ Firebird API.
MacOS X
Note
«lipo» builds are the 64-bit Firebird Server with client libs as fat lib (32 and 64 bits).
Date | Filename | Size | Description |
---|---|---|---|
23rd Jun 2014 | FirebirdCS-2.1.6-18547-i386.pkg.zip | 13.0 Mb | 32-bit package |
23rd Jun 2014 | FirebirdSS-2.1.6-18547-i386.pkg.zip/download | 13.0 Mb | 32-bit package |
23rd Jun 2014 | FirebirdCS-2.1.6-18547-x86_64.pkg.zip | 13.0 MB | 64-bit package |
23rd Jun 2014 | FirebirdCS-2.1.6-18547-lipo-x86_64.pkg.zip | 18.0 Mb | 64-bit Lipo package |
23rd Jun 2014 | FirebirdSS-2.1.6-18547-x86_64.pkg.zip | 13.0 Mb | 64-bit package |
23rd Jun 2014 | FirebirdSS-2.1.6-18547-lipo-x86_64.pkg.zip | 13.0 Mb | 64-bit Lipo package |
18th Mar 2011 | FirebirdCS-2.1.4-18393-powerpc.pkg.zip | 14.0 Mb | 32-bit package |
18th Mar 2011 | FirebirdSS-2.1.4-18393-powerpc.pkg.zip | 14.0 Mb | 32-bit package |
11th Sep 2009 | FirebirdCS-2.1.3-18185-powerpc.pkg.zip | 11.4 MB | 64-bit package |
IMPORT FOREIGN SCHEMA options
-
import_not_null
Determines whether column constraints are included in the definitions
of foreign tables imported from a Firebid server. The default is . -
import_views
Determines whether Firebird views are imported as foreign tables. The default is .
-
updatable
If set to , mark all imported foreign tables as not updatable. The default is .
-
verbose
Logs the name of each table or view being imported at log level .
will quote Firebird table column names if required, and if the
Firebird name is entirely lower-case, will add the appropriate
option to the PostgreSQL table definition.
Note that when specifying the option, any quoted table names will result in
the corresponding PostgreSQL foreign table being created with a quoted table name.
This is due to PostgreSQL’s foreign data wrapper API, which filters the
table definitions passed back from the foreign data wrapper on the basis of
the table name provided in the command. However, Firebird table names
which are entirely lower-case can currently not be provided as quoted column
names as PostgreSQL considers these as unquoted by default and the foreign
data wrapper has no way of knowing whether they were originally quoted.
Installation
Specific installation instructions for the following operating
systems are provided separately:
- CentOS/Redhat etc.
- Debian/Ubuntu etc.
- OS X
Source installation
Prerequisites:
-
Firebird client library and API header file ()
-
, a -like API wrapper for the Firebird C API; see:
NOTE the latest version should be used with the current
version, as the two are usually developed in tandem.
is installed as a PostgreSQL extension; it requires the
binary for the target installation to be in the shell path.
should take care of the actual compilation and
installation.
IMPORTANT: you must build against the PostgreSQL version
it will be installed on.
Установка Firebird
1. Диски куда будет устанавливаться FirebirdSQL cервер Firebird и любые базы данных которые вы создаете или к которым подключаетесь должны распологаться на жестком диске, который физически подключен к хост-компьютеру. Вы не можете расположить файлы сервера или любой другой базы данных на mapped drive, filesystem share или сетевой файловой системе.
Вы можете подключиться к базе данных расположенной на CD-ROM (в режиме чтения), но вы не можете запустить с него SQL сервер Firebird и не сможете обновить данные в базе.
2. Установочный скрипт или программа
Несмотря на то, что есть возможность установить Firebird простым копированием файлов, такая как «untarring» файла билда или распаковка .zip-файла, но при первой установке очень рекомендуется использование распространяемого комплекта ПО. Исполняемый файл установки под Windows, RPM-пакет (RedHat Package Manager) под Linux и официальный файл tar.gz для других POSIX-платформ.
2.1. Платформа Windows
На серверных версиях Windows — Windows NT, 2000, ХР и Vista сервис Firebird запустится после завершения установки. После перезагрузки вашего компьютера он запустится автоматически.
Несерверные версии Windows — Windows 95, 98 и ME, не поддерживают сервисы. SQL cервер Firebird будет работать как приложение, защищенное другим приложением известное как Guardian. Если серверное приложение по какой-то причине завершилось неправильно, то Guardian попробует перезапустить его.
Копия клиентской библиотеки — fbclient.dll или gds32.dll будет установлена в системную директорию Windows.
2.2. POSIX-платформы
В любом случае прочитайте release notes относящиеся к той версии Firebird которую вы собираетесь устанавливать. В них могут быть значительные отличия от релиза к релизу любой POSIX-совместимой операционной системы, в особенности относящиеся к категории open source. Где возможно, инженеры создающие билды для каждой версии Firebird, документируют любую известную проблему.
Если в вашем комплекте ПО нет копии release notes, то сходите на download-страницу веб-сайта Firebirdи скачайте копию оттуда.
Проще всего осуществить установку с использованием портов. Если порт под Firebird (InterBase) отсутствует его достаточно просто скачать в Интернете и установить в систему. На примере Freebsd. Заходим в /usr/ports/databases/firebird-server-xx (где хх — версия Firebird (InterBase)) и набираем make install. Все должно установиться. После чего аналогично поступаем с /usr/ports/databases/firebird-clientr-xx. В других Unix-овых системах установка через порты примерно такая же.
Если у вас есть дистрибутив Linux поддерживающий установку из RPM-пакетов, то, если необходимо, прочитайте соответствующую документацию для инструкций по использованию RedHat Package Manager’a. В большинстве дистрибутов у вас есть выбор производить ли установку из командной строки или посредством GUI интерфейса.
Для дистрибутивов не умеющих работать с RPM-пакетами и для ряда UNIX систем, используйте комплект „tar.gz». В release notes вы найдете подробные инструкции по установке.
В комплект включены shell-скрипты. В некоторых случаях, в release notes может быть написано чтобы вы изменили эти скрипты и произвели некоторые корректировки.
Для установки из rpm пакета необходимо выполнить следующую команду:
$rpm -Uvh Firebird.x.x.x.rpm
где Firebird.x.x.x.rpm является именем скачанного инсталляционного пакета.
Для установки с использованием пакета в формате tar.gz необходимо выполнить следующее: $tar -xzf Firebird.x.x.x.tar.gz
$cd install
$./install.sh
Выполнение этих команд приводит к одному и тому же результату — на Linux-машине будет установлен Firebird (InterBase). Вариант с архитектурой SuperServer будет функционировать в виде демона, a Classic — в виде сервиса.
Надо заметить, что приведенный порядок установки годится практически для любой версии Firebird (InterBase). Правда, для различных дистрибутивов Linux могут существовать свои особенности и хитрости при установке, так что лучше посмотреть рекомендации по установке для вашей версии ОС Linux/Unix.
Тестирование БД мобильного Delphi-приложения
В предыдущем материале «Выбор СУБД для мобильного Delphi-приложения», как следует из его названия, был показан первый этап в разработке той подсистемы приложения, что отвечает за хранение и бо́льшую часть обработки его данных; уточнение про «бо́льшую часть» сделано неспроста, т. к. в итоге обозначенный выбор пал на СУБД Interbase именно из-за возможности применять хранимые процедуры (ХП), которые и стали сосредоточением основной логики по работе с данными, оставляя за Делфи-кодом несложную задачу по их вызову.
Для лучшего понимания необходимости тестирования в данном конкретном случае, нужно отметить, что в описанном проекте изначально была задана довольно высокая планка качества, поддержание которой в части функционала, реализованного в процедурах, достиглось, в том числе, за счёт автотестов, проверяющих ключевые ХП (они ответственны за критический для приложения функционал – ). Именно один из способов организации такого тестирования – на основе DUnitX и XML – и является предметом статьи.
2011
2.1 (последний релиз 2.1.4 от 15.03.2011)
Среди нововведений необходимо выделить глобальные триггеры базы данных, общие табличные выражения (CTE), временные таблицы, возможность мониторинга базы данных через SQL, отмена зависших запросов, а так же новые SQL инструкции.
2.5
Основной целью Firebird 2.5 было заложить основу для многопоточной архитектуры будущих версий. В данной версии в основе двух моделей Firebird Super Server и Firebird Classic лежит общий код, осуществляющий низкоуровневую синхронизацию и потокобезопасность.
Новые возможности SQL в Firebird 2.5
- Управление пользователями через SQL (CREATE USER/ALTER USER/DROP USER).
- Модификация представлений через инструкции ALTER VIEW и CREATE OR ALTER VIEW.
- Возможность изменять вычисляемые поля ALTER COLUMN.
- Оператор SIMILAR TO позволяет проверять регулярные выражения в условии WHERE, CHECK и в операторе * IF расширения PSQL.
Прочие изменения в Firebird 2.5
- Поддержка автономных транзакций в PSQL (хранимые процедуры, триггеры, оператор EXECUTE BLOCK.
- Выполнение гетерогенных запросов через EXECUTE STATEMENT
- VIEW на основе хранимых процедур
- Таймауты запросов
- Улучшенный мониторинг. MON$MEMORY_USAGE и др.
- Принудительное отключение клиента через MON$STATEMENTS.
- Новая системная роль RDB$ADMIN позволяет передавать SYSDBA свои привилегии другому юзеру в пределах базы данных.
2.5.1 (последний релиз от 4.10.2011)
Спустя год после выхода СУБД Firebird 2.5 представлен корректирующий релиз Firebird 2.5.1 . Кроме исправления ошибок, в новой версии представлено несколько улучшений:
- Заметно увеличена производительность восстановления БД (gbak restore) на стадии добавления данных;
- Добавлена поддержка записи в глобальные временные таблицы для баз, находящихся в режиме только для чтения. Увеличена производительность глобальных временных таблиц и эффективность работы сборщика мусора;
- В PSQL добавлена поддержка контекстной переменной SQLSTATE, которая может использоваться в блоках WHEN наряду с переменными GDSCODE и SQLCODE для диагностики ошибок;
- В API добавлены функции предобразования между BLOB.
Компонент TFDTransaction
Параметр
Назначение
Connection
Связь с компонентом FDConnection.
Options.AutoCommit
Управляет автоматическим стартом и завершением транзакции. Значение по умолчанию True.
Если значение этого свойства установлено в True, то FireDAC делает следующее:Запускается транзакция (если требуется) перед выполнением каждой SQL команды, и завершает транзакцию после выполнения SQL команды. Если команда выполнится успешно, то транзакция будет завершена как COMMIT, иначе — ROLLBACK.
Если приложение вызывает метод StartTransaction, то автоматическое управление транзакциями будет отключено, до тех пор, пока транзакция не завершится как Commit или Rollback.
В Firebird автоматическое управление транзакциями эмулируется самими компонентами FireDAC.
Options.AutoStart
Управляет автоматическим запуском транзакции. По умолчанию True.
Options.AutoStop
Управляет автоматическим завершением транзакции. По умолчанию True.
Options.DisconnectAction
Действие, которое будет выполнено при закрытии соединения, если транзакция активна. Значение по умолчанию xdCommit. Возможны следующие варианты:xdNone – ничего не будет сделано. Действие будет отдано на откуп СУБД;
xdCommit – подтверждение транзакции;
xdRollback – откат транзакции.
В других компонентах доступа значение по умолчанию для подобного свойства xdRollback. Поэтому необходимо выставлять это свойство вручную в то значение которое действительно требуется.
Options.EnableNested
Управляет вложенными транзакциями. Значение по умолчанию True.
Когда транзакция активна, то следующий вызов StartTransaction создаст вложенную транзакцию. FireDAC эмулирует вложенные транзакции, используя точки сохранения, если СУБД не поддерживает вложенные транзакции в явном виде. Чтобы отключить вложенные транзакции, установите EnableNested в False и следующий вызов StartTransaction вызовет исключение.
Firebird не поддерживает вложенные транзакции в явном виде.
Options.Isolation
Определяет уровень изолированности транзакции
Это самое важное свойство транзакции. Значение по умолчанию xiReadCommited
Возможны следующие варианты:xiUnspecified – используется уровень изоляции по умолчанию для вашей СУБД (в Firebird это SNAPSHOT, т.е. с параметрами read write concurrency wait);
xiDirtyRead – этого уровня изолированности в Firebird не существует поэтому вместо него будет использован READ COMMITED;
xiReadCommited – уровень изолированности READ COMMITED. В Firebird такая транзакция стартует с параметрами read write read_committed rec_version nowait;
xiRepeatableRead – этого уровня изолированности в Firebird не существует поэтому вместо него будет использован SNAPSHOT;
xiSnapshot – уровень изолированности SNAPSHOT. В Firebird такая транзакция стартует с параметрами read write concurrency wait;
xiSerializable – уровень изолированности SERIALIZABLE. На самом деле в Firebird не существует транзакции с данным уровнем изолированности, но он эмулируется запуском транзакции с параметрами read write consistency wait.
Options.Params
Специфичные для СУБД параметры транзакции. В настоящее время используется только для Firebird и Interbase. Возможные значения:read
write
read_committed
concurrency
consistency
wait
nowait
rec_version
no rec_version
Options.ReadOnly
Указывает является ли транзакция только для чтения. По умолчанию False. Если установлено в True, то любые изменения в рамках текущей транзакции невозможны, в Firebird в этом случае отсутствует значение read в параметрах транзакции.
Установка этого свойства в True позволяет СУБД оптимизировать использование ресурсов.
Замечание Такую транзакцию нельзя использовать для отчётов (особенно если они используют несколько последовательных запросов), потому что транзакция с режимом изолированности READ COMMITED во время перечитывания данных будет видеть все новые committed-изменения. Для отчётов рекомендуется использовать короткую транзакцию только для чтения с режимом изолированности SNAPSHOT (Options.Isolation = xiSnapshot и Options.ReadOnly= True). В данном примере работа с отчётами не рассматривается. |
CREATE SERVER options
accepts the following options via the command:
-
address
The Firebird server’s address (default: )
-
port
The Firebird server’s port (default: )
-
database
The name of the Firebird database to connect to.
-
updatable
A boolean value indicating whether the foreign server as a whole
is updatable. Default is true. Note that this can be overridden
by table-level settings. -
disable_pushdowns
Turns off pushdowns of clause elements to Firebird. Useful
mainly for debugging and benchmarking. -
quote_identifiers
Quote all identifiers (table and column names) by default. This can
be overridden with for individual table
and column names.See «» for details.
1.2.0 and later. In PostgreSQL 9.3 and 9.4 this setting
is ignored for column names. -
implicit_bool_type
Turns on implicit conversion of Firebird integer types to PostgreSQL
types. This is an experimental feature and is disabled by
default. See column option for details.1.2.0 and later.
Варианты
- Firebird SuperServer имеет один демон / сервер для всех клиентских подключений, многопоточный с общим кешем
- Firebird SuperClassic также имеет один демон / сервер для всех клиентских подключений, многопоточный с отдельными кешами.
- Firebird Classic использует inetd для запуска одной копии сервера на каждое клиентское соединение, рекомендуется для систем SMP, но может иметь проблемы с уведомлением о событиях, если доступ осуществляется через брандмауэр.
- Firebird Embedded для создания каталогов на компакт-дисках, однопользовательских или ознакомительных версий приложений.
Добавление поддержки СУБД Firebird в фреймворк Laravel
Во время написания примера (позже будет ссылка) веб-приложения на PHP с использованием СУБД Firebird возник вопрос выбора фреймворка для разработки с использованием архитектурной модели MVC. Выбор фреймворков под PHP очень большой, но наиболее удобным, простым и легко расширяемым показался Laravel. Однако этот фреймворк не поддерживал из коробки СУБД Firebird. Laravel использует для работы с базой данных драйвера PDO. Поскольку для Firebird существует драйвер PDO, то это натолкнуло меня на мысль, что можно с некоторыми усилиями заставить работать Laravel c Firebird.Laravel — бесплатный веб-фреймворк с открытым кодом, предназначенный для разработки с использованием архитектурной модели MVC (англ. Model View Controller — модель-представление-контроллер). Laravel – это удобный и легко расширяемый фреймворк для построения ваших веб-приложений. Из коробки фреймворк Laravel поддерживает 4 СУБД: MySQL, Postgres, SQLite и MS SQL Server. В этой статье я расскажу как добавить ещё одну СУБД Firebird.
API подключения
Низкоуровневый собственный API Firebird, API служб и встроенный SQL
Собственный API Firebird используется прямо или косвенно приложениями или промежуточным программным обеспечением, которые подключаются к базе данных Firebird. Он реализован в клиентской библиотеке fbclient.dll в системах Windows и в libfbclient.so в системах Unix.
API служб — это специальный набор функций для доступа и управления задачами администрирования служб, такими как управление пользователями, резервное копирование / восстановление и сбор статистики.
Встроенный SQL — это метод, упрощающий разработку приложений Firebird на C / C ++ и COBOL за счет использования препроцессора gpre, который позволяет встраивать операторы SQL непосредственно в исходный код основного языка.
Основные возможности СУБД
Firebird полностью поддерживает стандартны ANSI в синтаксисе языка SQL и может работать под управлением многих операционных систем — Windows, Linux, MacOS, Solaris и различных Unix-платформах. Среди достоинств этой системы использование очень развитого языка для хранимых процедур и триггеров. Предшественник Firebird, СУБД Interbase использовалась в информационных системах начиная с 1981 года.
Firebird это свободный проект, поддерживаемый многими программистами и специалистами из других областей по всему миру. Его начало было положено 25 июля 2000 года, когда корпорация Inprise Corp (ныне известная как Borland Software Corp) открыла исходные коды своей СУБД Interbase, которая использовалась в различных информационных системах начиная с 1981 года.
Firebird полностью бесплатна, она не требует ни регистрации, ни оплаты за поддержку. Исходный код этой системы открыт и любой желающий может разрабатывать на его базе собственные некоммерческие проекты, при условии соблюдения требований лицензии IDPL, по которой распространяется Firebird.
Firebird (FirebirdSQL) — компактная, кроссплатформенная, свободная система управления базами данных (СУБД), работающая на Linux, Microsoft Windows и разнообразных Unix платформах.
Firebird основан на исходном коде InterBase 6.0 который был выпущен как Open Source компанией Borland в августе 2000 года. История Interbase начинается в 1984 году, таким образом, продукт является наследником более чем 20-летнего опыта работы с реляционными базами данных
В качестве преимуществ Firebird можно отметить многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов (это возможно потому, что читающие пользователи не блокируют пишущих), компактность (дистрибутив 5Mb), высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров.
Firebird используется в различных промышленных системах (складские и хозяйственные, финансовый и государственный сектора) с 2001 г. Это коммерчески независимый проект C и C++ программистов, технических советников и разработчиков мультиплатформенных систем управления базами данных, основанный на исходном коде, выпущенном корпорацией Borland 25 июля 2000 года в виде свободной версии Interbase 6.0.
Firebird является сервером баз данных. Один сервер Firebird может обрабатывать несколько сотен независимых баз данных, каждую с множеством пользовательских соединений. Он является полностью свободным от лицензионных отчислений даже для коммерческого использования.
Среди недостатков: отсутствие кэша результатов запросов, полнотекстовых индексов.