Как сделать скрипт в ibexpert

Добавил пользователь Cypher
Обновлено: 04.10.2024

Здравствуйте!
Можно ли написать на сабже такой скрипт, который при проливки его смотрел существует ли база, таблица, хранимая процедура и т.д. и например при условии, что таблица не существует он бы создал ее или хранимую процедуру?
Или для этих условий придется использовать рукописную UDF библиотеку?

Например кусок MsSQL скрипта

BasiL писал(а): Здравствуйте!
Можно ли написать на сабже такой скрипт, который при проливки его смотрел существует ли база, таблица, хранимая процедура и т.д. и например при условии, что таблица не существует он бы создал ее или хранимую процедуру?
Или для этих условий придется использовать рукописную UDF библиотеку?

Например кусок MsSQL скрипта

2Kdv
Мне надо написать именно скрипт, который при запуске с нуля создавал БД, в ней таблицы тригеры и процедуры. Но у меня сейчас загвоздка в том, как сделать, что бы при проливки второй раз этого скрипта БД и таблицы не трогались (или дополнялись записями, которых нет в БД), а процедуры перепроливались.

ЗЫ Надо что бы этот скрипт проливался без помощи каких либо других программ, а с помощью isql.exe

2Merlin
Ты можешь дать указатель на конкректную страницу?

насчет langref - а не ломотно тебе будет на www.ibase.ru навести мышь на Firebird и потом "документация"?

насчет "дополнения записей", которых нет в БД - isql не занимается извлечением ВСЕХ записей из БД. Данные он выводит только через select. поэтому тебе придется озаботиться самостоятельно синхронизацией данных. Что в общем то, через скрипт никогда не делают.

BasiL писал(а): 2Kdv
Мне надо написать именно скрипт, который при запуске с нуля создавал БД, в ней таблицы тригеры и процедуры. Но у меня сейчас загвоздка в том, как сделать, что бы при проливки второй раз этого скрипта БД и таблицы не трогались (или дополнялись записями, которых нет в БД), а процедуры перепроливались.

ЗЫ Надо что бы этот скрипт проливался без помощи каких либо других программ, а с помощью isql.exe

Скриптер isql не имеет возможности управлять ветвлением. Но и не валится на исключениях, а продолжает выполнять последующие операторы. Так что если таблица есть, то он доложит об исключении при попытке создания и спокойненько пойдёт себе дальше. То же и с созданием полей. А процедуры можно RECREATE, можно CREATE OR ALTER. Я бы послал тебя за этим в Release Notes, но ты же номер строки потребуешь.

Могу, но не хочу. Если тебе _для себя_ лень в поиске Акробата набрать "system tables" или просто пролистать оглавление, то мне и подавно его запускать лень.

Система для управления базами данных, explorer для Firebird, Interbase и Yaffil. IBExpert является мощным инструментом для проектирования и мониторинга работы Баз данных. Официальный сайт проекта. и так, скачав и установив систему мы должны позаботиться еще о сервере баз данных, будем рассматривать Firebird так как из всех перечисленных это самая перспективная БД. Скачиваем Firebird, устанавливаем. Теперь мы можем начать создавать свою БД и работать с ней. Запускаем IBExpert при первом запуске у нас появляется два окна, окно меню и окно explorer это крайне не удобно поэтому делаем так


В открывшимся окне выставляем параметры как на картинке ниже


Перезапускаем среду и видим следующие


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


Появляется окно создания базы данных



При регистрации указываем версию сервера БД, для нашего примера этого достаточно так как остальные обязательные поля заполнены автоматически. Можно еще указать описание БД я написал – тестовая БД. Так же проверьте путь к созданной БД. Если все правильно жмем проверка коннекта


Проверка коннекта прошла успешно, жмем Cancel и в окне регистрации БД жмем Register



БД откроется в иерархической структуре будут представлены:

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

Вы можете сохранить данную статью себе вконтакте:



Теперь скачаем и установим IBExpert. Открываем файл Setup_trial.


В окне нажимаем кнопку Next.


Принимаем лицензию и нажимаем кнопку Next.


Выбор пути оставляем таким же, нажимаем кнопку Next.


Здесь множество отмечено галочек.

Можете все их оставить, но для нас важна первая (её даже снять не получиться). Нажимаем кнопку Next.


Нажимаем кнопку Next.


Нажимаем кнопку Install.


Идёт процесс установки.

Нажимаем кнопку Finish.


Всё IBExpert и FireBird у нас на компьютере установлены.

Создание полей в IBExpert

Разработаем программу Телефонный справочник с помощью промежуточной программы IBExpert, где будут создаваться поля для нашей БД. Управление данными (добавление, редактирование, удаление) происходит программой, которую напишем в Delphi.

Создаем новую папку для проекта. У меня путь к папке C:\БДIBExpert. Откроем IBExpert и выполним команду Options/Environment Options… Появится окно, где можно выбрать русский язык.


Сверху правой части в выпадающем списке Interface Language выберем Russian, и нажмём кнопку OK. Всё теперь отображается на русском.

Выбираем пункт главного меню База данных/Создать базу… Появится окно Создание базы данных.


Так как мы будем создавать базу на своем компьютере, выбираем Локальный в выпадающем списке Сервер. Если хочется поэкспериментировать и создать базу на удаленном сервере, если он конечно у вас есть, то выбирайте Удалённый (дополнительно надо будет выбрать имя сервера и протокол связи).

В поле Файл БД выбираем имя файла будущей базы, щелкаем на кнопке с изображением открывающейся папки, появится диалоговое окно Открыть (Open), как показано на рис. 23,


где необходимо выбрать:

  • путь файла базы данных — поле Папка (у меня С:/BDIBExpert);
  • имя файла базы данных — поле Имя файла (TelefonSpravochnik);
  • тип файла (для Firebird нужно выбрать FDB) — поле Тип файлов.

Нажимаем кнопку Открыть. В поле Имя пользователя вводим SYSDBA, в поле Пароль вводим masterkey — это имя и пароль администратора (суперпользователя) по умолчанию. В выпадающем списке Размер страницы БД выбираем последнее значение. В выпадающем списке Кодировка выбираем WIN1251 — это кодировка, с которой будет работать база. Отмечаем галочку Зарегистрировать после создания.


Замечание
В поле SQL Dialect необходимо выбрать Dialect 3, в противном случае будут проблемы при разработке клиентского приложения. У меня, например, в Delphi не было видно хранимых процедур, хотя реально они были созданы.

Создание Базы Данных

Очень важно этот выбор произвести на этапе создания базы данных, иначе потом придется переделывать некоторые элементы базы.


IBExpert предлагает зарегистрировать базу, иначе работать мы с ней не сможем. Если в выпадающем списке Версия сервера не появилась версия, используемая нами, FireBird, то выбираем её из выпадающего списка. В поле Описание базы данных можно написать, например: SpravochnikTelefon, а можно и не писать. Написанное будет отображаться слева в списке. Нажимаем кнопку Register. Слева в списке будет отображена наша база. Делаем двойной щелчок по ней и это окно примет вид рис. 26.


Щёлкнем правой кнопкой мыши по Таблицы рис. 27.


И выберем из списка Новая таблица… Появится окно рис. 28.


Сразу дадим название таблице. Справа сверху там, где написано NEW_TABLE введём своё название, например: TELEPHON_SPRAVOCCHNIK.

Далее нам необходимо создать поля для базы данных. Щёлкнем, где написано NEW_FIELD и введём имя поля (конечно английскими буквами) Key это будет ключевое поле. Тип поля выбираем из выпадающего списка Тип. Так как это поле ключевое, вберем Integer (оно должно быть целого типа). Без ключевого поля в базе данных нельзя будет добавить данные.

Теперь нам надо создать поле Фамилия. Жмём стрелку вниз, появится новая строка. Точно так же пишем (пониже поля Key) – FAMILIYA и выбираем Тип поля. Тип должен быть строковой, поэтому выберем VARCHAR. Здесь ещё нужно отметить Длину строки. В списке Длина напишем 20 (длинные фамилии не бывают). Два поля мы создали.

Далее последовательно создаём (остальные) необходимые нам поля:

  • Третье поле NAME. Тип VARCHAR. Длина строки 20;
  • Четвёртое поле DATA. Тип DATE;
  • Пятое поле NEW_GOROD. Тип VARCHAR. Длина поля 25;
  • Шестое поле TELEFON. Тип VARCHAR. Длина поля 100;
  • Седьмое поле MAIL. Тип VARCHAR. Длина поля 50;
  • Восьмое поле MOBILNIK. Тип CHAR. Длина поля 3;
  • Девятое поле GOROD. Тип INTEGER.

В нашей базе данных, как вы уже заметили, существует два поля город (NEW_GOROD и GOROD). Дело в том что, мы будем выбирать Название города из выпадающего списка. В этот список города попадают из справочника городов.

Замечание
Девятое поле GOROD можно и не прописывать. Существует несколько способов добавления названий городов из списка.

Ну, мы ещё до этого не дошли, сначала надо создать базу данных Телефонного справочника.

Инструменты администратора и разработчика БД

Введение

Если Вы читаете эту страницу, то, скорее всего, это ваше первое знакомство с Firebird. Далее будут показаны основные возможности этой системой управления базами данных (СУБД). Уверены, что после прочтения вы захотите скачать инсталлятор и попробовать ее самостоятельно.

История

Firebird ведет свое начало от исходных кодов Borland InterBase 6.0. Это программа с открытым исходным кодом, не имеющая двойных лицензий, вы можете использовать ее совершенно СВОБОДНО как в коммерческих приложениях, так и в приложениях с открытым кодом (open source)!

Технологии, на которых основан Firebird используются более 20 лет, что сделало его весьма зрелым и стабильным продуктом.

Основные свойства:

Не удивляйтесь малому размеру инсталлятора! Firebird — это полнофункциональная и мощная СУБД, она может обслуживать базы данных размером от нескольких килобайт до многих гигабайт, показывая хорошую производительность и практически не нуждаясь в обслуживании!

Основные характеристики Firebird:

Попробуйте прямо сейчас!

Это очень просто.

Размер инсталлятора обычно не превышает 7 MB (зависит от вашей операционной системы), а процесс установки полностью автоматизирован. Вы можете скачать инсталлятор с сайта Firebird.

Обратите внимание, что существует 4 варианта сервера: SuperServer, Classic, SuperClassic и Embedded. Для первого знакомства лучше подходит SuperServer. Classic рекомендуется для многопроцессорных машин, а также в некоторых других специфических случаев. SuperServer имеет разделяемый между всеми соединениями к базе данных кэш и использует потоки для обслуживания каждого соединения, а Classic запускает отдельный процесс с собственным кэшем для независимой работы с каждым отдельным соединением к базе данных.

Embedded — это еще одна, удивительная версия сервера. Она состоит из всего одной библиотеки (DLL) размером около полутора мегабайт, содержащей полностью весь сервер Firebird. Это делает версию Embedded чрезвычайно удобной для распространения, так как в этом случае отсутствует необходимость установки сервера. Она идеальна для создания CDROM-каталогов, демонстрационных версий программ и приложений для однопользовательской работы.

Firebird включает в себя набор консольных программ, позволяющих создавать базы данных, исследовать их характеристки, выполнять операторы SQL и скрипты, производить резервное копирование данных, их восстановление из резервной копии и так далее. Если же более привычными для Вас являются средства, оснащенные графическим интерфейсом (GUI), то в этом случае также имеется множество вариантов для выбора нужной программы на ваш вкус. Для начала можете попробовать те из них, которые перечислены в списке в конце этой страницы.

Документация

Любой размер

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

Firebird

Firebird – это свободная система управления базами данных (СУБД). Это проект, независимый, с коммерческой точки зрения. Основана Firebird на исходном коде свободной версии СУБД Interbase 6.0, изданной компанией Borland 25 июля 2000 года. Работает Firebird на Microsoft Windows, Linux и всевозможных Unix платформах.

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

Установка IBExpert в разных операционных системах

Кроме того отмечается, что Firebird легко поддерживает довольно-таки большие базы данных. Среди минусов чаще всего называют отсутствие кеша итогов запросов, полнотекстовых индексов.

Система управления базами данных Firebird используется в самых разных промышленных системах как государственного, так и негосударственного сектора.

Стоит подчеркнуть, что Firebird – это сервер обработки баз данных, и один такой сервер может обработать сотни независимых баз данных, и каждую – с огромным количеством пользовательских соединений. Чтобы обеспечить резервное копирование, сервер останавливать нет необходимости. Сам процесс резервного копирования сохраняет состояние базы данных на момент старта, при этом никак не препятствуя работе с базой.

Firebird поддерживает большинство международных наборов символов с огромным количеством вариантов сортировки.

IBExpert – бесплатная утилита, предназначенная для администрирования баз данных InterBase и Firebird. Редакция ELMA Express работает с использованием Firebird, поэтому IBExpert в данном случает подходит для выбора, просмотра и изменения данных, хранящихся в базе.

Для работы с базой данных через IBExpert необходимо:

  • сервер (Server) – Локальный или Local (рис. 1.2);
  • версия (Server Version) – Firebird 2.5 (рис. 1.3);
  • путь до базы (Database File) – путь до файла base.fdb (рис. 1.4);
  • логин (User Name) – sysdba (рис. 1.5);
  • пароль (Password) – masterkey (рис. 1.5);
  • кодировка (Charset) – UNICODE_FSS (рис. 1.6).

Connect_to_Database


Рис. 2. Подключение к базе данных

Если при попытке подключения к базе данных возникает ошибка, говорящая о том что библиотека gds32.dll не найдена (рис. 3), то необходимо подключить библиотеку из каталога ELMA. Для этого нажмите правой кнопкой мыши по названию базы данных в списке и выберите пункт меню Database Registration Info (рис. 2). В открывшемся окне в поле Client Library File укажите путь до файла FirebirdServer\bin\fbclient.dll в каталоге с системой ELMA и нажмите кнопку ОК (рис. 4). После этого осуществите попытку подключения к базе повторно.



Рис. 3. Ошибка при подключении к БД

Select library


Рис. 4. Подключение библиотеки

Чтобы выполнить запрос в базу данных, необходимо:

  1. Нажать кнопку Новый SQL редактор (New SQL Editor) (Shift+F12) (рис 5.1).
  2. В открывшемся окне редактора ввести текст SQL-запроса.
  3. Нажать кнопку Выполнить (F9) (рис 5.2).
  4. Для фиксации изменений следует нажать кнопку Подтвердить транзакцию (Commit Transaction) (Ctrl+Alt+C) (рис 5.3).

SQl_Editor


Рис 5. Выполнение SQL-Запроса

Перед выполнением запросов в БД настоятельно рекомендуется создать резервную копию базы данных, подробнее об этом можно прочитать в статье "Работа с базами данных"

Цель работы. Знакомство с возможностями и приобретение практических навыков работы с интерактивной утилитой IBExpert как инструментом разработчика и администратора баз данных СУБД Firebird. Создание учебной БД.

Лабораторное задание. Изучить теоретическую часть, изложенную в гл. 1 и 2 настоящего учебного пособия. Ознакомиться с предметной областью (учебной БД) по описанию в приложении А. При необходимости установить на используемый компьютер Firebird SQL Server (SuperServer) версии 3.0 и утилиту IBExpert. Создать учебную БД и заполнить ее таблицы данными, взятыми из описания ее одноименных таблиц. В качестве примеров выборки данных выполнить запросы к таблицам БД. Выполнить резервное копирование и восстановление учебной БД. Составить отчет и защитить лабораторную работу.

Порядок выполнения работы

1. Создать средствами используемой операционной системы на физическом диске С: каталоги GGGGSQL, где GGGG соответствует номеру группы.

  • 2. Загрузить утилиту IBExpert, предварительно убедившись, что сервер СУБД Firebird загружен.
  • 2.1. Ознакомиться с правилами работы и структурой меню, а также со всеми доступными пунктами меню утилиты.
  • 2.2. Создать, используя пункт главного меню База данных/Соз- дать базу утилиты IBExpert, в каталоге C:GGGGSQL файл рабочей БД с именем NN.fdb, где NN соответствует номеру варианта. При этом сервер выбрать "Remote, TCP/IP" с именем "localhost", имя пользователя и пароль задать как для администратора БД, выбрать диалект БД — 3, установить размер страницы — 16384 (это размер страницы по умолчанию для базы Firebird 3.0), а кодировку — WIN1251.
  • 3. Зарегистрировать созданную БД, выбрав версию сервера Firebird 3.0, задав произвольное описание (имя) БД, а значения всех остальных параметров БД — установленными по умолчанию. Подключиться к созданной БД и ознакомиться со всеми вновь доступными пунктами меню утилиты.
  • 4. Вызвать SQL-редактор (Инструменты/SQL Редактор). Создать 4 домена, последовательно вводя и выполняя запросы:

CREATE DOMAIN Money AS NUMERIC(15,2);

CREATE DOMAIN TMonth AS SMALLINT CHECK (VALUE BETWEEN 1 AND 12);

CREATE DOMAIN PKfield AS INTEGER;

CREATE DOMAIN TYear AS SMALLINT CHECK (VALUE BETWEEN 1990 AND

  • 2100);
  • 5. Создать в учебной БД таблицу Services, выполнив запрос

CREATE TABLE Services (ServiceCD PKFIELD NOT NULL,

ServiceNM VARCHAR(30), PRIMARY KEY (ServiceCD));

Подтвердить транзакцию и убедиться в наличии создаваемых объектов БД (Database Explorer).

6. Вставить в таблицу услуг (Services) все строки с данными, взятыми из описания одноименной таблицы учебной БД, используя аналогию со следующим запросом INSERT, который применяется для вставки первой строки в таблицу услуг:

INSERT INTO Services (ServiceCD, ServiceNM)

VALUES (1, 'Газоснабжение');

7. Вывести содержимое таблицы Services с помощью запроса SELECT * FROM Services;

и убедиться в правильности введенных данных.

  • 8. В случае правильного ввода данных зафиксировать текущую транзакцию. Если данные, выведенные запросом п. 7, отличаются от данных соответствующей таблицы, то следует выполнить откат текущей транзакции и повторить п. 6 и 7.
  • 9. Сформировать скрипт для создания и заполнения всех остальных таблиц учебной БД. Для этого в редактор скриптов (Инструменты/

10. Просмотреть на экране всю информацию о созданных объектах БД. По результатам анализа в случае успешного создания БД зафиксировать изменения, в противном случае — отменить изменения и повторить п. 9. Выполнить в SQL-редакторе следующий запрос, который извлекает из таблицы NachislSumma все строки о начислениях абоненту с ФИО Тимошкина Н. Г. (номер лицевого счета '080270'):

SELECT * FROM NachislSumma WHERE AccountCD = '080270';

11. Выполнить запрос, который извлекает из таблицы PaySumma всю информацию об оплатах услуг, произведенных абонентами за период позже 2016 г.:

SELECT * FROM PaySumma WHERE PayYear > 2016; .

12. Выполнить запрос, который возвращает сумму значений всех оплат, произведенных каждым абонентом:

SELECT AccountCD, SUM(PaySum) AS Summa_Abonent FROM PaySumma GROUP BY AccountCD;

19. Защитить лабораторную работу, положительно ответив под контролем информационной системы [35] на заданное количество тестовых вопросов по теме настоящей работы.

Этот нагруженный возможностями инструмент администрирования имеет средства гиперссылок и возможность хранения историй во всех редакторах. Он также имеет SQL Monitor, визуальный конструктор запросов, режимы фильтрации выхода для запросов, фоновое выполнение запросов, прямой импорт данных CSV, завершение кода, отладку, трассировку и советы по PSQL, настраиваемые шаблоны клавиатуры, редактирование и отображение BLOB (включая рисунки и двоичные коды), редакторы пользователей и полномочий, режим автоматического предоставления полномочий для создания новых объектов, моделирование сущностей, средство сравнения баз данных с созданием обновляющих скриптов, формирование планов и выполнения, инструменты для скриптов, включая скрипты по выводу данных BLOB, предварительно определенные и определенные пользователем отчеты схемы, мастер резервного копирования, средства диагностики соединения, поддержку нескольких языков и многое другое.

Другая информация: коммерческий[167] программный продукт от H-К Software GmbH. Доступно Free Personal Edition (Свободное персональное издание). Также доступна версия для образовательных целей.

Читайте также: