Создание приложений для субд firebird с использованием различных компонент и драйверов: firedac

Содержание:

Настройка KeepAlive

В случае обрыва соединения информация о нем может по прежнему храниться в базе. Из-за этого некоторые пользователи не смогут войти в базу или изменить некоторые записи, т. к. они могут быть заблокированы. Мы можем настроить систему таким образом, чтобы наличие соединений проверялось системой с некоторой периодичностью. Это позволит Firebird закрывать оборванные соединения. Параметры KeepAlive устанавливаются в файле sysctl.conf:

nano /etc/sysctl.conf

Добавим в файл следующие строчки:

net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 2

Первый параметр указывает системе начинать проверку соединения через 60 секунд. Если клиент не ответил, то повторить попытку через 30 секунд (второй параметр). Всего попыток 2 (третий параметр). После второй попытки система ждет еще 30 секунд (второй параметр) и закрывает соединение. Время закрытия соединения рассчитывается по формуле time + (probes + 1) * intvl. В нашем примере до закрытия соединения пройдет примерно: 60 + (2 + 1) * 30 = 150 секунд.

Запуск набора тестов базы данных FPC

Может быть полезно запускать среду тестирования базы данных FPC (в каталоге packages\fcl-db\tests), когда вы охотитесь за ошибками, пытаетесь выяснить, как что-то работает или улучшаете код базы данных.

Сообщаем платформе, какую базу данных использовать

Вам нужно будет отредактировать INI-файл db test framework, чтобы сообщить исполняемому файлу теста, что ему нужно использовать вашу встроенную базу данных.
См. для получения инструкций о том, как это сделать.

Создание тестовой базы данных

Если вы настроили среду для использования Firebird, вам нужно будет подготовить среду для тестирования.

Скопируйте библиотеки embedded Firebird и другие файлы для вашей архитектуры в тестовый каталог.

Затем создайте тестовую базу данных — вручную или программно/

Создание базы данных вручную

isql

create database 'test.fdb' user 'SYSDBA' password 'masterkey' page_size 16384 default character set UTF8;
exit;

Программное создание базы данных

Вы можете программно создать базу данных. В приведенном ниже примере создается локальная встроенная база данных, но ее можно легко изменить на удаленную базу данных (измените имя хоста и, если необходимо, путь):

program firebirdembeddedtest;
{$mode objfpc}{$H+}

uses 
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF} 
  Classes, SysUtils,
  sqldb, IBConnection {for Firebird};

const
  // Имя для базы данных. Обязательно укажите одно и то же имя в вашем database.ini
  DatabaseFile = 'test.fdb'; //Разумное имя для тестовой базы данных, верно?
var
  Fire TIBConnection;

begin
  //Подключение к базе данных Firebird
  //Следующая строка нужна для довольно старых версий FPC
  //UseEmbeddedFirebird: = true; 
  //Более новые версии сначала будут искать файл fbembed.dll в каталоге приложения автоматически 
  //Использование встроенного (и fbembed.dll) или обычного клиент/сервера (fbclient.dll) требует использования ibase60dyn
  Fire:=TIBConnection.Create(nil);
  try
    Fire.HostName := ''; //должен быть пустым для embedded Firebird; должен быть заполнен для клиент/сервера Firebird
    Fire.DatabaseName := DatabaseFile; //(путь и ) имя файла
    // Имя пользователя и пароль не имеют значения для аутентификации, но вы получаете авторизацию в базе данных    
    // на основе имени (и, возможно, роли), которое вы даете.
    Fire.Username := 'SYSDBA';
    Fire.Password := 'masterkey'; //пароль для SYSDBA по умолчанию
    Fire.Charset := 'UTF8'; //Отправка и получение строковых данных в кодировке UTF8
    Fire.Dialect := 3; //Никто больше не использует диалекты 1 или 2 (прим.перев.: это справедливо лишь в отношении новых проектов)
    Fire.Params.Add('PAGE_SIZE=16384'); //Мне нравится большой размер страницы (используется при создании базы данных). Полезно для больших индексов ⇒ больший возможный размер столбца
    // Выясните, есть ли база данных в каталоге приложения. 
    // Если нет, создайте его. Примечание: это может не сработать, если у вас недостаточно прав.

    // Если вы используете клиент / сервер, вам явно не нужна эта часть кода.
    if (not FileExists(DatabaseFile)) then
    begin
        writeln('Файл '+DatabaseFile+' не существует.');
        writeln('Создание базы данных Firebird embedded ...');
        // Создаем базу данных, поскольку она не существует
        try
          Fire.CreateDB; //Создаем файл базы данных.
        except
          on E Exception do
          begin
            writeln('ОШИБКА при создании базы данных. Возможно проблемы с загрузкой встроенной библиотеки:');
            writeln('- не все файлы присутствуют');
            writeln('- неправильная архитектура (например, 32 бит вместо 64 бит)');
            writeln('Exception message:');
            writeln(E.ClassName+'/'+E.Message);
          end;
        end;
        Fire.Close;
    end;
  finally
    Fire.Free;
  end; 
end.

Наконец, скомпилируйте и запустите dbtestframework.pas программы тестирования базы данных. Он должен генерировать вывод состояния на консоли и вывод XML в файлах с результатами теста, которые можно проанализировать и отправить разработчикам.

Firebird: что это за программа и зачем ее используют?

Firebird – среда для управления и работы с базами данных. Программа кроссплатформенная, подходит для всех настольных ОС. Используется для построения баз данных в промышленных системах. С 2001-го года программа распространяется на бесплатной основе.

Характеристики и возможности

Разберем подробнее, на что способна программа.

Основные особенности:

Открытый код Программу можно использовать бесплатно как для приложений с открытым кодом, так и для коммерческих целей.
Малый вес Firebird не занимает много места на жестком диске. При этом, она работает с базами в сотни раз превышающими ее размер.
Распространенность Firebird собрала вокруг себя сообщество энтузиастов. В любой момент пользователи получают актуальную информацию о ее работе.
Построение баз данных в режиме «только для чтения» СУБД может распространять данные на съемных носителях.
Копирование «на лету» При резервном копировании не нужно останавливать работу сервера. Технология копирования предполагает сохранение базы в момент создания копии. Процесс не мешает работе сервера.

Преимущества СУБД:

  • софт совместим со всеми актуальными ОС;
  • не требует настройки и отладки. Запускается непосредственно после установки;
  • работает в автоматическом режиме;
  • расширение функций за счет внешнего функционала;
  • установщик не занимает много места;
  • поддерживаются хранимые процедуры и триггеры;
  • записи различных версий обрабатываются параллельно с остальными;
  • триггеры создаются на SQL;
  • нет необходимости в участии системных администраторов;
  • поддержка широкого набора языков кодировки.

Не обошлось без минусов. Среди основных такие:

  1. Отсутствует кэш. Не отслеживается история запросов.
  2. Замедление работы с увеличением внутренней фрагментации базы.

Установка и работа

Помимо самой СУБД, для полноценной работы потребуется IBExpert:

  1. Софт скачивается с официального сайта.
  2. Затем устанавливаем Firebird. После установки, СУБД автоматически запускается при включении компьютера.

Совет! 19 апреля 2016 года стала доступна версия Firebird 3.0. Кратко ознакомится с новыми возможностями можно здесь. 

Работа начинается с запуска IBExpert. При первом запуске появится запрос об использовании многотипных элементов интерфейса. Если выбрать многотипный режим, интерфейс копирует инструментарий DELPHI.

Для создания первой базы, выбираем:

  • «База данных»;
  • затем жмем «Создать»;
  • и выбираем «Локальный сервер».

Для работы программа потребует пароль. У Firebird пароль по умолчанию

masterkey

Теперь вы приступите к созданию первого проекта.

Детальная инструкция по работе с базой показана на видео.

Удаление

Первый шаг – остановка программы. Открываем СУБД, запускаем Firebird Server Control, и нажимаем «Stop». После того, как работа остановлена, можно переходить к удалению:

  1. Через «Панель управления» переходим в меню «Установка и удаление программ».
  2. В данном окне выделяем СУБД, и в списке действий выбираем «Удалить».
  3. Подтверждая действие, избавляемся от компонентов программы.

Exec — Выполнение кода, консоль запросов и не только!

Незаменимый инструмент администратора БД и программиста:
Выполняйте произвольный код из режима 1С Предприятие; сохраняйте/загружайте часто используемые скрипты; выполняйте запросы с замером производительности запроса в целом и каждой из временных таблиц в частности, а также с просмотром содержимого временных таблиц; произвольным образом изменяйте любые объекты БД, редактируя даже не вынесенные на формы реквизиты и записывая изменения в режиме «ОбменДанными.Загрузка = Истина»; легко узнавайте ИД объектов БД; выполняйте прямые запросы к SQL с замером производительности и не только!

5 стартмани

Версии сервера

Релиз Firebird 1.0 — это первая версия (ноябрь 2001 года), базирующаяся на открытых исходных текстах InterBase 6.0. Поэтому в основном релиз содержит большое число исправлений ошибок IB 6.0.

  • Расширенные проверки зависимостей (udf и генераторы)
  • Убраны проблемы с размером файла БД более 4 гигабайт (кроме FAT16 и FAT32, где файл не может быть больше 2-4 гигабайт)
  • Поддержка размера страницы БД 16 килобайт
  • ForcedWrites теперь ON по умолчанию при создании БД
  • Параметр конфигурации для задания расположения внешних файлов
  • Увеличено количество внешних файлов, открываемых одновременно
  • Внешний файл закрывается, если внешняя таблица удаляется
  • Добавлен параметр CPU_Affinity (Superserver)
  • Возможность указания номера порта в строке коннекта
  • параметр NONAGLE для Linux
  • расширения isc_info_database
  • счетчик записей для gbak (при указании опции -v)
  • переменные CURRENT_USER и CURRENT_ROLE
  • команда DROP GENERATOR
  • возможность группировки по UDF (group by <function>)
  • команда RECREATE PROCEDURE
  • команда RECREATE TABLE
  • опции SELECT FIRST (<int>) SKIP (int) …
  • функция SUBSTRING(<str> FROM <pos> )
  • команда PLANONLY для ISQL
  • новый маркер комментариев —
  • расширения ib_udf (SUBSTR, SUBSTRLEN, ASCII_CHAR)
  • новый набор функций FBUDF.DLL
  • by descriptor в параметрах UDF

Повышенная точность хранения и вычисления для типов NUMERIC и DECIMAL

Типы NUMERIC и DECIMAL теперь могут хранить числа с точностью до 38 цифр. Для хранения чисел с точностью более 18 цифр Firebird 4.0 использует тип INT128 (128 битное целое). Кроме того улучшена обработка промежуточных результатов вычислений с типами данных NUMERIC и DECIMAL. В предыдущих версиях Firebird числа, внутренне представленные типом данных
BIGINT (то есть с точностью от 10 до 18 десятичных цифр), умножались/делились с использованием того же типа данных BIGINT для промежуточных вычислений, что могло вызвать ошибки переполнения из-за ограничения доступной точности. В Firebird 4 такие вычисления выполняются с использованием 128-битных целых чисел, что снижает вероятность неожиданных переполнений.

Тип INT128 также доступен для использования.

Установка Firebird — выбор типа сервера

Сервер Firebird SQL доступен в 3-х вариантах:

  • Firebird Super Server
  • Firebird Classic Server
  • Firebird Embedded

Firebird Super Server

Firebird Super Server — все клиентские подключения обслуживаются одним серверным процессом, имеется общий клиентский кеш. За счет этого достигается меньший расход ресурсов на обслуживание клиентов. Недостатком Firebird Super Server является отсутствие возможности задействовать несколько процессоров для работы Firebird сервера.

Firebird Classic Server

Firebird Classic Server — на каждое клиентское подключение создает отдельный серверный процесс. Архитектура Firebird Classic Server более надежна, т.к. сбой одного серверного процесса не вызывает отказ в обслуживании всех клиентов. Кроме того, Firebird Classic позволяет задействовать многопроцессорную архитектуру. При установке Firebird вы можете выбрать между версиями Firebird Super Server или Firebird Classic Server.

Firebird Embedded

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

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

Firebird Embedded Server распространяется отдельным дистрибутивом.

Скачать архив с Firebird Embedded.

Если затрудняетесь с выбором

Если вы не уверены в выборе типа установки Firebird, то используйте Firebird Super Server. В дальнейшем вы без труда сможете изменить архитектуру сервера.

История

Через неделю после того, как Borland выпустила исходный код InterBase 6.0 25 июля 2000 г., на SourceForge был создан проект Firebird . Firebird 1.0 был выпущен для Linux, Microsoft Windows и Mac OS X 11 марта 2002 года с портами на Solaris , , HP-UX в течение следующих двух месяцев.

Работа по переносу кодовой базы с C на C ++ началась в 2000 году. 23 февраля 2004 года была выпущена Firebird 1.5, которая стала первым стабильным выпуском новой кодовой базы. Версия 1.5 включает улучшенный оптимизатор запросов , условные выражения SQL-92 , точки сохранения SQL: 1999 и поддержку явной . Firebird 2.0 был выпущен 12 ноября 2006 года, добавив поддержку 64-битных архитектур, таблиц , вложенных в FROM положений и программируемых замков таймаутов в блокировании операций .

Предыдущим стабильным выпуском была версия 2.1.6, в которой были добавлены новые функции, включая процедурные триггеры , рекурсивные запросы и поддержку операторов MERGE SQL: 2003 .

Firebird 2.5 представил новые функции, такие как улучшенная многопоточность , синтаксис регулярных выражений и возможность запрашивать удаленные базы данных.

Самая последняя стабильная версия — Firebird 3.0, выпущенная 19 апреля 2016 года, с упором на производительность и безопасность. Существенная реорганизация кода позволила полностью поддерживать SMP- машины при использовании версии SuperServer.

В рамках Google Summer of Code 2013 началась работа по интеграции Firebird в качестве замены HSQLDB в LibreOffice .

Конфликт имен Mozilla Firefox

В апреле 2003 г. объявила о переименовании своего веб-браузера с Phoenix в Firebird после спора о товарных знаках с Phoenix Technologies .

Это решение вызвало озабоченность в проекте базы данных Firebird из-за предположения, что пользователи и поисковые системы в Интернете будут сбиты с толку базой данных и веб-браузером, использующим имя Firebird. Разработчики Mozilla выступили с заявлением, в котором разъясняли, что их программный пакет называется «Mozilla Firebird», а не «Firebird». В заявлении также говорится, что название Mozilla Firebird было .

Спор был разрешен 9 февраля 2004 года, когда Mozilla изменила название своего браузера на Mozilla Firefox , что положило конец конфликту.

Улучшение производительности сортировок

Исторически сложилось, что когда выполняется внешняя сортировка, Firebird записывает в блоки сортировки как ключевые поля (перечислены в предложениях ORDER BY или GROUP BY), так и не ключевые (все остальные) поля запроса. После завершения сортировки (все) поля запроса вычитываются из блоков сортировки, находящихся в памяти или/и во (временных) файлах. Этот подход обычно считается более быстрым, поскольку записи читаются в порядке хранения вместо случайной выборки страниц данных, соответствующих отсортированным записям. Однако, если не ключевые поля велики (например, задействованы длинные VARCHAR), то они увеличивают размер блоков сортировки, провоцируя их вытеснение на диск и более интенсивный ввод-вывод для временных файлов. Firebird 4 предоставляет альтернативный подход, когда только ключевые поля и записи DBKEY хранятся внутри блоков сортировки, а не ключевые поля повторно выбираются со страниц данных после сортировки. Это улучшает производительность сортировки в случае длинных не ключевых полей.

Установка

В Windows встроенный Firebird и обычные клиентские библиотеки Firebird — это разные файлы. Встроенный Firebird всегда может служить обычным клиентом, что делает его логичным выбором для включения в вашу установку.

Windows

Загрузите и разархивируйте комплект embedded Firebird. Убедитесь, что файлы .dll и .manifest находятся либо:

  • в каталоге вашего проекта и в каталоге исполняемых файлов (где генерируется .exe), либо
  • в каталоге в вашем PATH (не в системном каталоге) (полезно, если вы не хотите сохранять скопированные dll)

Обратите внимание, что битность должна совпадать: вы должны использовать embedded x64 версию, если вы компилируете свою программу под 64-бит, и embedded x32, если вы пишете 32-битные программы. Также убедитесь, что файлы .dlls и .manifest размещены в выходном (исполняемом) каталоге вашего проекта, и распространяйте их вместе с приложениями и файлами лицензий.. Как указание, минимально необходимыми файлами для Firebird 2.5 являются:

Как указание, минимально необходимыми файлами для Firebird 2.5 являются:

  • fbembed.dll
  • firebird.msg
  • ib_util.dll
  • icudt30.dll
  • icuin30.dll
  • icuuc30.dll
  • IDPLicense.txt
  • IPLicense.txt
  • Microsoft.VC80.CRT.manifest
  • msvcp80.dll
  • msvcr80.dll

Linux

Для Debian, вероятно, похоже на Ubuntu:
получите файлы библиотеки, а также символическую ссылку: например, /usr/lib/x86_64-linux-gnu/libfbembed.so linking для /user/lib/x86_64-linux-gnu/libfbembed.so.bla.x.y

aptitude install libfbembed2.5 firebird-dev

По крайней мере, для Firebird 2.5+: не указывайте имя пользователя или пароль, так как это приведет к поиску security.fdb, что может привести к сбою в случае невозможности доступа к общесистемному security.fdb. Укажите роль RDB$ADMIN в Firebird 2.5+, так как она должна дать вам полный контроль над файлом базы данных.

Поместите эти файлы в каталог вашего проекта (для этого: проверьте, все ли это необходимо):

firebird/libfbembed.so (или возможно libfbembed.so.2.5)
firebird.conf
firebird/security.fdb #возможно, нет необходимости 
firebird/intl/fbintl
firebird/udf/fbudf.so

Для Firebird 3 вам понадобится:

firebird/libfbclient.so
plugins/libEngine12.so

Вам нужно изменить переменную каталога плагинов. Если вы не можете этого сделать, вам нужно поместить libEngine в его оригинальный каталог.

Установите это в firebird.conf (для этого: проверьте, все ли это необходимо)

RootDirectory=./firebird #замените на ваш каталог
DatabaseAccess = Full #наверное полезно
ExternalFileAccess = Full #наверное полезно
UdfAccess = Full #наверное полезно
#disable
#TempDirectories = /tmp #=> не удалось исправить проблемы блокировки /tmp/firebird
#TempDirectories = ~/tmp #=> не удалось исправить проблемы блокировки /tmp/firebird

Перед запуском приложения необходимо установить 2 переменные среды. Предположим, что приложение установлено в /home/pascaldev/embed:

# сообщаем динамическому загрузчику, где найти embedded lib:
LD_LIBRARY_PATH=/home/pascaldev/embed/firebird
# сообщаем серверу, где искать файлы (сообщения, настройки и т. д.)
FIREBIRD=. #или используйте абсолютный путь: /home/pascaldev/embed

Если вы поймали ошибку такую, как

EIBDatabaseError/ : DoInternalConnect :
 -Can't access lock files' directory /tmp/firebird

возможно, у вас лежат устаревшие файлы блокировки, принадлежащие другому пользователю. Удаление каталога /tmp/firebird работает, но проблема в том, что он будет воссоздан под вашими локальными разрешениями.

macOS

todo: описать это, возможно адаптация Более ранняя версия embedded Firebird на Linux и особенно Firebird Embedded на macOS

Статьи и часто задаваемые вопросы

Установка и настройка

  • Самостоятельная сборка снапшота Firebird

  • Установка Firebird из снапшота

  • Установка firebird на Linux

  • Скрипт для резервирования базы данных на Python

  • Скрипт для резервирования базы данных на shell

  • Как установить на LINUX второй экземпляр Firebird

  • Подлючение к базе данных из 1С

Полезные запросы SQL

  • SQL000. Математические операции с датой

  • SQL001. Отбор множества записей по ключам

  • SQL002. Является ли строка числом

  • SQL003. Сумма прописью

  • SQL004. Можно ли в Firebird делать запросы к нескольким базам данных

  • SQL005. Как в строку вставить произвольный символ ?

  • SQL006. Как в строку вставить перенос строки (CRLF) ?

  • SQL007. Отбор множества записей по ключам из другой таблицы (обход конструкции IN)

  • SQL008. Полезные хранимые процедуры для обслуживание индексов

  • SQL009. Формирование штрих-кода EAN13 по коду записи в таблице

  • SQL010. Выборка данных из «древовидной таблицы» с учетом иерархии объектов

  • SQL011. Обмен данными между базами с помощью EXTENDENT (экспортируемых) таблиц

  • SQL012. Посчитать контрольный разряд к СНИЛС

Firebird 3.0.6.33328_0 скачать бесплатно — Бесплатные программы

Firebird – это система управления базами данных от независимых разработчиков. Программа поддерживается сообществом, а ее распространение осуществляется на основе лицензий IDPL и InterBase Public License.

Инструмент Firebird представляет собой сервер и в составе операционной системы работает как служба или отдельное приложение. Программа не имеет собственного графического интерфейса. Управление базами данных, таблицами, полями и выборкой осуществляется посредством создания SQL-запросов на соответствующем языке в командной строке (CLI), однако в сети в огромном множестве наличествуют визуальные редакторы, призванные упростить процесс администрирования и обращения к БД.

Преимущества Firebird

  • Распространение продукта на бесплатной основе.
  • Поддержка сервера сообществом разработчиков.
  • Малый объем инсталлятора.
  • Наличие множества сторонних модулей, призванных упростить работу с СУБД.

Недостатки Firebird

Отсутствие редактора кода и средств визуального администрирования баз данных; все управление осуществляется из командной строки.

Заключение

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

Установка Firebird

Установка сервера не составляет труда. Основные этапы включают в себя принятие условий лицензионного соглашения, выбор пути расположения программы на жестком диске, а также небольшую конфигурацию параметров сервера вроде автозапуска Firebird при старте системы.

Изменения в последней версии (история изменений)

  • Добавлена недостающая поддержка перемещения в сборках MacOS.
  • Увеличена скорость разбора длинных запросов.
  • Улучшена производительность при использовании плагина SRP.
  • Добавлен лучший контроль транзакций в ISQL.
Разработчик: Firebird Project
2020-06-30
Версия Windows: XP, Vista, 7, 8, 10
Русский язык: Присутствует
Украинский язык: Отсутствует

СкачатьFirebird

Замечания

1. INTO часть оператора — список переменных(<variable_list>), — разрешена к использованию только в PSQL для присваивания значений локальных переменных, и запрещена в DSQL.

2. В DSQL значения полей записи возвращаются в том же порядке следования, в каком они перечислены в операторе INSERT.

3. Если в операторе изменения данных (INSERT, UPDATE OR INSERT, UPDATE, DELETE) присутствует оператор RETURNING, то оператор представляется как процедура, следовательно программная прослойка для работы с сервером должна поддерживать оператор EXECUTE PROCEDURE.

Замечания переводчика:

Внимание Delphi-разработчиков: текущие на момент написания статьи версии компонентов доступа к серверу

— IBX x.11 не поддерживает эту особенность;
— IBDAC 2.20 не поддерживает эту особенность;
— FIBPlus 6.80 поддерживает эту особенность

4. Любое изменение записи и/или удаление записи, произведенное AFTER-триггером, игнорируется оператором RETURNING. То есть Вы получите значение модифицированной записи на момент выполнения всех BEFORE-триггеров и до выполнения всех AFTER-триггеров.

5. В операторах UPDATE и UPDATE OR INSERT в части RETURNING могут использоваться переменные OLD и NEW, хранящие соответственно старое и новое значение записи.

6. В операторах UPDATE и UPDATE OR INSERT не указанные или указанные явно при помощи имени таблицы(пседвонима) значения полей заносятся в переменную NEW.

Пример

Допустим, в базе данных существуют следующие объекты:

CREATE SEQUENCE MY_GENERATOR_ID;
ALTER SEQUENCE MY_GENERATOR_ID RESTART WITH ;
 
CREATE TABLE MY_TABLE(
  ID   INTEGER NOT NULL PRIMARY KEY,
  NAME VARCHAR(255) DEFAULT ''
);
 
SET TERM !!;
 
CREATE OR ALTER TRIGGER TRIG_MY_TABLE_BI_000 FOR MY_TABLE
ACTIVE BEFORE INSERT POSITION 
AS
BEGIN
  NEW.ID = GEN_ID(MY_GENERATOR_ID, 1);
END!!
 
SET TERM ; !!

Пример использования в DSQL:
Внимание Delphi-разработчиков: текущая на момент написания статьи версия IBX x.11 корректное выполнение оператора не поддерживает, см. выше «Замечания» п.3

-- 1. INSERT
INSERT INTO MY_TABLE(NAME) VALUES ('Значение записи') RETURNING ID, NAME;
 
-- 2. UPDATE
UPDATE MY_TABLE T1 SET
  T1.NAME = 'Новое значение'
WHERE (T1.ID = 4)
RETURNING OLD.NAME, NEW.NAME;
 
-- 3. DELETE
DELETE FROM MY_TABLE T1 WHERE (T1.ID = 2)RETURNING NAME;

Пример использования в PSQL:

SET TERM !!;
 
CREATE OR ALTER PROCEDURE MY_TABLE_INS(
  A_NAME VARCHAR(255)
)RETURNS(
  ID INTEGER,
  DESCR VARCHAR(255)
)AS
BEGIN
  INSERT INTO MY_TABLE(NAME)VALUES(:A_NAME)RETURNING ID INTO :ID;
  DESCR = 'Вставленной записи присвоен код "' || :ID || '".';
  SUSPEND;
END !!
 
SET TERM; !!

Установка 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector