Идентификация пользователя
Независимо от того, соединились ли вы из командной строки или сделали это внутри командной строки isql, идентификация пользователя будет ошибочной, если сервер не распознает имя пользователя или пароль. Например, на рис. 37.3 показано, что вы увидите, если оператор CONNECT будет ошибочным.
Рис. 37.3. Ошибочная идентификация пользователя
Если такое произошло, дважды проверьте, правильно ли вы задали имя пользователя и пароль, и в правильном ли регистре введен пароль. Пароль чувствителен к регистру, а имя пользователя нет.
Терминатором оператора по умолчанию является точка с запятой (;), которая используется во всех примерах в этой главе. Вы можете изменить этот терминатор любым другим символом или группой символов посредством команды SET TERM[INATOR]. Например, чтобы заменить его на "!!", используйте следующий оператор:
SQL> SET TERM !!;
SQL>
Продолжение строки подсказки
Если вы нажмете клавишу , забыв завершить оператор терминатором, вы увидите продолжение подсказки CON> вместо подсказки isql SQL>:
SQL> SHOW DATABASE
CON>
Если это было ошибкой, просто наберите терминатор и опять нажмите клавишу . Причем вы можете использовать эту возможность, чтобы сделать ваш текст более читаемым, например:
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 отличается в зависимости от того, вводите ли вы оператор 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 стартует для него специальную транзакцию и немедленно ее подтверждает после того, как вы нажимаете клавишу . Сразу после этого стартует новая транзакция. Вы можете изменить автоматическое поведение, выдав команду 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. Используйте клавиши <���Т> (стрелка вверх) и (стрелка вниз) для "прокручивания" буфера isql по одной строке за раз для поиска копий строк, которые вы вводили ранее.
Использование предупреждений
По умолчанию isql выдает предупреждения при некоторых условиях, например:
* операторы, не выполняющие действий;
* двусмысленная спецификация соединений в Firebird 1.0.x (в версии 1.5 и выше это вызовет исключение);
* выражения, которые дадут различные результаты в различных версиях Firebird;
* вызовы API, которые будут изменены в будущих версиях;
* когда база данных переведена в состояние SHUTDOWN.
Для переключения режима выдачи предупреждений в процессе выполнения сессии интерактивной isql используйте SET WARNINGS или сокращенный вариант SET WNG.
Читать дальше