Чтение онлайн

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

Жанры

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

Символ терминатора

Терминатором оператора по умолчанию является точка с запятой (;), которая используется во всех примерах в этой главе. Вы можете изменить этот терминатор любым другим символом или группой символов посредством команды SET TERM[INATOR]. Например, чтобы заменить его на "!!", используйте следующий оператор:

SQL> SET TERM !!;

SQL>

Продолжение строки подсказки

Если вы нажмете клавишу <Enter>, забыв завершить оператор терминатором, вы увидите продолжение подсказки CON>

вместо подсказки isql SQL>:

SQL> SHOW DATABASE

CON>

Если это было ошибкой, просто наберите терминатор и опять нажмите клавишу <Enter>. Причем вы можете использовать эту возможность, чтобы сделать ваш текст более читаемым, например:

SQL> CREATE TABLE ATABLE (

CON> ID INTEGER NOT NOLL,

CON> DATA VARCHAR(20),

CON> DATE_ENTERED DATE

CON> DEFAULT CURRENT_DATE

CON> );

SQL>

! ! !

СОВЕТ. Одна из причин применения возможности продолжения - это то, что вы можете использовать команду OUTPUT для помещения введенного вами в isql текста в файл. Поскольку вывод сохраняется точно в таком же виде, как вы вводите данные, все ваши пробельные отступы будут сохранены. Многие пользователи Firebird используют isql в качестве единственного редактора скриптов!

. ! .

Транзакции в isql

Управление транзакциями в isql отличается в зависимости от того, вводите ли вы оператор DDL, команду SHOW или другие виды операторов.

Когда isql стартует, она запускает транзакцию с уровнем изоляции SNAPSHOT (параллельный) с установкой разрешения блокировок WAIT. Если вы выполняете не операторы DDL и не команды SHOW, транзакция продолжает оставаться текущей, пока вы не выдадите оператор COMMIT или ROLLBACK.

Вы можете стартовать явную транзакцию, подтвердив текущую транзакцию, и выдав оператор SET TRANSACTION. Например, для старта транзакции READ COMMITTED NO WAIT введите:

SQL> COMMIT;

SQL> SET TRANSACTION

CON> NO WAIT READ COMMITTED;

При завершении вашей задачи просто выдайте как обычно оператор COMMIT. Следующий оператор вернет систему в конфигурацию по умолчанию.

Операторы DDL

Каждый раз, когда вы выдаете оператор DDL, isql стартует для него специальную транзакцию и немедленно ее подтверждает после того, как вы нажимаете клавишу <Enter>. Сразу после этого стартует новая транзакция. Вы можете изменить автоматическое поведение, выдав команду SET AUTODDL OFF из подсказки SQL до начала выполнения ваших операторов DDL:

SQL> SET AUTODDL OFF;

Чтобы опять включить режим автоматического подтверждения операторов DDL, введите:

SQL> SET AUTODDL ON;

Для переключения между режимами включено/выключено существует сокращенная версия команды:

SQL> SET AUTO;

Команды SHOW

Команды SHOW в isql запрашивают данные из системных таблиц. Когда вы вызываете команду SHOW, isql подтверждает существующую транзакцию и стартует новую с уровнем изоляции READ COMMITTED. Это гарантирует, что вы всегда видите самые последние изменения метаданных, как только они будут изменены.

Поиск

в буфере строк

Начиная с версии 1.5 и выше, isql позволяет вам отыскивать строки в буфере способом, похожим на возможность readiine на платформах POSIX. Используйте клавиши <Т> (стрелка вверх) и <i> (стрелка вниз) для "прокручивания" буфера isql по одной строке за раз для поиска копий строк, которые вы вводили ранее.

Использование предупреждений

По умолчанию isql выдает предупреждения при некоторых условиях, например:

* операторы, не выполняющие действий;

* двусмысленная спецификация соединений в Firebird 1.0.x (в версии 1.5 и выше это вызовет исключение);

* выражения, которые дадут различные результаты в различных версиях Firebird;

* вызовы API, которые будут изменены в будущих версиях;

* когда база данных переведена в состояние SHUTDOWN.

Для переключения режима выдачи предупреждений в процессе выполнения сессии интерактивной isql используйте SET WARNINGS или сокращенный вариант SET WNG.

Обработка исключений

Ошибки в isql обрабатываются тем же образом, что и приложении DSQL. isql отображает сообщение об ошибке, содержащее переменную SQLCODE и текст сообщения из массива состояния Firebird, как показано на рис. 37.4.

Рис. 37.4. Пример сообщения об ошибке в isql

Ошибки SQL со значением SQLCODE меньше нуля означают, что оператор не был выполнен. Все они представлены в приложении 10. Вы можете также увидеть одно из предупреждений SQL или информационное сообщение, а именно:

* 0: SUCCESS (успешное выполнение);

* +1-99-. SQLWARNING (системное предупреждение или информационное сообщение);

* +100 NOT FOUND (указывает, что указанные строки не найдены или достигнут "конец файла"; т. е. определен конец текущего активного набора строк).

Установка в isql диалекта

Если вы запустили isql и соединились с базой данных без указания диалекта, утилита принимает диалект базы данных.

Вы можете установить диалект для isql несколькими способами.

* При запуске isql:

[bin] isql -s n

где n- число 1, 2 или 3. Если вы зададите диалект этим способом, isql сохранит данный диалект после соединения, если только вы явно его не измените.

* В сессии isql или в скрипте SQL:

SET SQL DIALECT N;

Утилита продолжит работать с этим диалектом, пока он не будет явно изменен. Диалект не может быть установлен как параметр оператора CREATE DATABASE.

! ! !

ВНИМАНИЕ! Когда вы создаете базу данных интерактивно с использованием isql, база данных будет в том диалекте, который в настоящий момент существует у isql во время выдачи оператора CREATE DATABASE. Вам нужно будет учесть это, если у вас была перед этим открыта база данных с диалектом 1, потому что isql останется в диалекте 1 и после отключения от базы данных с диалектом 1.

Поделиться:
Популярные книги

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Хозяйка дома в «Гиблых Пределах»

Нова Юлия
Любовные романы:
любовно-фантастические романы
5.75
рейтинг книги
Хозяйка дома в «Гиблых Пределах»

Фиктивный брак

Завгородняя Анна Александровна
Фантастика:
фэнтези
6.71
рейтинг книги
Фиктивный брак

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Держать удар

Иванов Дмитрий
11. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Держать удар

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

По дороге на Оюту

Лунёва Мария
Фантастика:
космическая фантастика
8.67
рейтинг книги
По дороге на Оюту

Мастер 5

Чащин Валерий
5. Мастер
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Мастер 5

Не лечи мне мозги, МАГ!

Ордина Ирина
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.00
рейтинг книги
Не лечи мне мозги, МАГ!

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

Арская Арина
Любовные романы:
современные любовные романы
5.20
рейтинг книги
Измена. Право на семью

Крепость над бездной

Лисина Александра
4. Гибрид
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Крепость над бездной

Неудержимый. Книга XXI

Боярский Андрей
21. Неудержимый
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неудержимый. Книга XXI