powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / isql -i some.sql: как заставить его немедленно прервать вып-е, если база в shutdown'e ?
4 сообщений из 4, страница 1 из 1
isql -i some.sql: как заставить его немедленно прервать вып-е, если база в shutdown'e ?
    #38350094
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Дано: некий большой скрипт, в который натолкано около 50 execute block'ов, разделенных commit'ами.
Скрипт этот скармливается isql и в процессе его обработки может случиться так, что база будет переведена в shutdown.

Задача: заставить isql немеделенно прекращать работу с этим скриптом, если на некотором стейтменте (EB или "простом") возникла ошибка Statement failed, SQLSTATE = HY000 (т.е. база улеглась в шатдаун или к ней просто нельзя подключиться - по любым причинам).

Осуществимо ли это ?

Я вот попробовал выполнить это в одну строку:
Код: plaintext
SQL> select count(*) from rdb$fields, rdb$fields, rdb$fields, rdb$fields; select count(*) from rdb$relations; select count(*) from rdb$procedures;

- и пока он молотил первый стейтмент, ввёл во втором окне gfix -shut full -force 0 ...
В первом окне получил:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
       COUNT
============
Statement failed, SQLSTATE = HY000
database C:\MIX\FIREBIRD\FB25\TB.FDB shutdown
Statement failed, SQLSTATE = HY000
database C:\MIX\FIREBIRD\FB25\TB.FDB shutdown
Statement failed, SQLSTATE = HY000
database C:\MIX\FIREBIRD\FB25\TB.FDB shutdown

Сообщение синего цвета я понимаю - это он обломался на select count(*) from rdb$fields, ...
А сообщения малинового цвета говорят, что isql пытался выполнить оставшиеся два стейтмента:
 [code=plaintext]select count(*) from rdb$relations; select count(*) from rdb$procedures;

Хотелось бы, чтобы при обломе первого сообщения isql прекращал делать всё остальное (при запуске с каким-либо ключиком или вводе команды типа set cancel_on_error on).
...
Рейтинг: 0 / 0
isql -i some.sql: как заставить его немедленно прервать вып-е, если база в shutdown'e ?
    #38350098
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-bail_on_error
SET BAIL ON
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
isql -i some.sql: как заставить его немедленно прервать вып-е, если база в shutdown'e ?
    #38350121
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал. И через set bail, и ключиком -b. Не пропёрло:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
C:\MIX\firebird\fb25>isql localhost:C:\MIX\firebird\fb25\TB.FDB -n
Database:  localhost:C:\MIX\firebird\fb25\TB.FDB
SQL> set bail on;
SQL> select count(*) from rdb$fields, rdb$fields, rdb$fields, rdb$fields; select count(*) from rdb$relations; select count(*) from rdb$procedures;

       COUNT
============
Statement failed, SQLSTATE = HY000
database C:\MIX\FIREBIRD\FB25\TB.FDB shutdown
Statement failed, SQLSTATE = HY000
database C:\MIX\FIREBIRD\FB25\TB.FDB shutdown
Statement failed, SQLSTATE = HY000
database C:\MIX\FIREBIRD\FB25\TB.FDB shutdown
...
Рейтинг: 0 / 0
isql -i some.sql: как заставить его немедленно прервать вып-е, если база в shutdown'e ?
    #38403236
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидХотелось бы, чтобы при обломе первого сообщения isql прекращал делать всё остальное (при запуске с каким-либо ключиком или вводе команды типа set cancel_on_error on).... и чем дальше, тем хотелось всё больше и больше.
http://tracker.firebirdsql.org/browse/CORE-4232
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / isql -i some.sql: как заставить его немедленно прервать вып-е, если база в shutdown'e ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]