S. D. F.

на главную - закладки

Жанры

Поделиться:
Шрифт:

Пароль S. D. F.

* А, понял, примитивный пароль, кнопочки под левой рукой.

– Пароль не распознан. В доступе отказано…

* Ладно, вторая попытка, помнится есть расширение sdf – вроде это база данных?

– Уже теплее…

* Третья попытка, третья… сдаюсь.

– Вообще-то пароль SQL Delphi Firebird.

– Поставлена задача: написать программу для исполнения SQL запросов. Программа пишется в среде Delphi, а база будет функционировать под управлением СУДБ Firebird.

*

Я знаю пароль, я вижу ориентир…

Есть ли у вас план…

– Давай поиграем с SQL.

* Поиграем? Ну, давай… А почему с SQL?

– Ну, у меня возникла очередная задача – упорядочивание моей библиотеки книг FB2.

* Но эта задача, сто лет как решена, есть масса программ для работы с библиотеками.

– Вот это - не надо… Чукча не пользователь, чукча – программист.

* Может быть, чукча, написал свой офис и заодно операционку?

– Конечно, заманчиво… и в истории есть примеры,… но пока давай займемся SQL.

* Ну, кое-что я помню, меня этому учили…

– Как я тебя понимаю, мы все учились понемногу и главное как-нибудь.

* Так, с помощью, какой базы мы будем писать базу, погоди, я запутался…

– Я понял, ты имеешь в виду СУДБ (систему управления базами данных). Теоретически это не имеет значения SQL и в Африке SQL. Но, я предлагаю Firebird.

* Законный вопрос, а почему именно эта птичка?

– Как говорит Википедия: Firebird (FirebirdSQL) — компактная, кроссплатформенная, свободная система управления базами данных (СУБД), работающая на Linux, Microsoft Windows и разнообразных Unix платформах. Для меня большое значение имеет то, что она компактна и бесплатна (Firebird - является полностью свободным от лицензионных отчислений даже для коммерческого использования.).

* Есть ли у вас план, мистер Фикс?

Есть ли у меня план? Да у меня целых три плана!

– Во-первых, написать программу для выполнения запросов SQL.

– Второе, проработать SQL с помощью книги Мартина Грубера «Понимание SQL»

– А потом – писать базу для FB2, но это уже за рамками этой книги.

* Ну вот. Так хорошо начиналось «Играть с SQL», а теперь опять, писать программу…

– Во-первых, отсылаю тебя к 5ой строке этого текста, а потом…

* Но есть же масса подобных программ…

– Есть. И одной из них я постоянно пользуюсь – это IBExpert. Отличная программа, и переплюнуть ее не берусь. Но есть неприятный момент, который меня постоянно раздражает каждый раз каждый новый вариант базы надо регистрировать,… да это всего несколько минут, но как я уже говорил, если выполнение рутинных действий (или ожидание) занимает более 10 секунд – для пользователя это непереносимо.

* А почему они так сделали, ведь не дураки там сидят?

– Это расплата за универсализм, повторюсь, отличная программа, но универсальная. Вспомни, как относились истинные меломаны к музыкальным комбайнам…

* Ну, а второй пункт, почему именно эта книга.

– Да надо, что-то выбрать, why not – книга

то хорошая, и примеров там много.

* Хорошо, техническое задание написано - поехали!

Браузер

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

– Начинай новый проект. Новая форма. Ну, давай, я тебе разжевывать все не буду, получи рисунок, и сам расставляй компоненты.

Рис 1. Главная форма

Рис 2. Форма TDataModule

– В этом модуле IBTransaction1 должна быть привязана к IBDatabase1 и соответственно IBSQL1 привязывается к IBTransaction1 и IBDatabase1.

* Как это «привязаны»? Что ты имеешь в виду.

– Я имею в виду, что не буду по-шагово все разжевывать, давай-ка поработай сам, понять все не трудно… (я настаиваю на мысли – если дать готовые рецепты – учащийся ничего не запомнит, да, сейчас он позлится, «его заставили потрудится» - и эта эмоция запишет в память нужные знания)

Первая задача: создать новую базу данных.

Рис 2.

010 procedure TFMain.NewDB1Click(Sender: TObject);

020 var

030 fn : string;

040 begin

050 fn := InputBox('File Name',' Введите имя файла новой базы данных','');

060 if fn = '' then exit;

070 if UpperCase(ExtractFileExt(fn)) <> '.FDB'

080 then fn := fn + '.FDB';

090 with DataM do

100 begin

110 IBDatabase1.Params.Clear;

120 IBDatabase1.Params.Add('USER SYSDBA');

130 IBDatabase1.Params.Add('PASSWORD masterkey');

140 IBDatabase1.Params.Add('PAGE_SIZE 4096');

150 IBDatabase1.DatabaseName:= fn;

160 IBDatabase1.SQLDialect := 3;

170 IBDatabase1.CreateDatabase;

180 IBDatabase1.Connected:=True;

190 IBTransaction1.Active:=True;

200 end;

210 end;

В 50 строке запрашивается имя для файла новой базы данных, если мы не ответим, то в 60 строке выход из процедуры.

– В 70 строке проверяется, ввели ли мы расширение в имени файла, и если мы ленивы, то 80 строка таковое расширение добавляет.

А вот это, важно! В строках 120 и 130 вводится имя пользователя и пароль. Во всех руководствах по Firebird говорится, что приведенные пароль и пользователь, указанны для образца, а использовать надлежит свои.

Комментарии:
Популярные книги

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Измена. Право на счастье

Вирго Софи
1. Чем закончится измена
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Право на счастье

Купец III ранга

Вяч Павел
3. Купец
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Купец III ранга

Черный Маг Императора 11

Герда Александр
11. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Черный Маг Императора 11

Обгоняя время

Иванов Дмитрий
13. Девяностые
Фантастика:
попаданцы
5.00
рейтинг книги
Обгоняя время

Вперед в прошлое 5

Ратманов Денис
5. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 5

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Маршал Советского Союза. Трилогия

Ланцов Михаил Алексеевич
Маршал Советского Союза
Фантастика:
альтернативная история
8.37
рейтинг книги
Маршал Советского Союза. Трилогия

Идеальный мир для Лекаря

Сапфир Олег
1. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря

Курсант: назад в СССР 2

Дамиров Рафаэль
2. Курсант
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Курсант: назад в СССР 2

Отвергнутая невеста генерала драконов

Лунёва Мария
5. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Отвергнутая невеста генерала драконов

Бастард

Майерс Александр
1. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард

Наследник с Меткой Охотника

Тарс Элиан
1. Десять Принцев Российской Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Наследник с Меткой Охотника

70 Рублей - 2. Здравствуй S-T-I-K-S

Кожевников Павел
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
постапокалипсис
5.00
рейтинг книги
70 Рублей - 2. Здравствуй S-T-I-K-S