Как из процедуры узнать что БД находится в режиме ReadOnly?

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
ThreeDHead
Сообщения: 3
Зарегистрирован: 07 май 2010, 11:13

Как из процедуры узнать что БД находится в режиме ReadOnly?

Сообщение ThreeDHead » 06 апр 2011, 18:42

Т.е. если БД в режиме только для чтения, то не делать такие-то операции.

Firebird 2.1.1 (Windows Build)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Как из процедуры узнать что БД находится в режиме ReadOn

Сообщение kdv » 07 апр 2011, 21:42

из процедуры - никак. узнать что база в read-only можно только с клиента. gstat -h, сотв. вызов Services API, или (вроде) TIBDatabaseInfo.

ThreeDHead
Сообщения: 3
Зарегистрирован: 07 май 2010, 11:13

Re: Как из процедуры узнать что БД находится в режиме ReadOn

Сообщение ThreeDHead » 08 апр 2011, 08:38

kdv писал(а):из процедуры - никак. узнать что база в read-only можно только с клиента. gstat -h, сотв. вызов Services API, или (вроде) TIBDatabaseInfo.
Спасибо за ответ.

Но решение всё-таки нашел - создать таблицу DBMODE, в ней установить в поле READONLY = 1, _перед_ переводом БД в ReadOnly. А из процедуры уже осуществлять проверку по этой таблице и полю.
Вообще то я думал что из системных таблиц можно эту инфу взять.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Как из процедуры узнать что БД находится в режиме ReadOn

Сообщение Dimitry Sibiryakov » 08 апр 2011, 14:26

А MON$DATABASE.MON$READ_ONLY не оно?..

ThreeDHead
Сообщения: 3
Зарегистрирован: 07 май 2010, 11:13

Re: Как из процедуры узнать что БД находится в режиме ReadOn

Сообщение ThreeDHead » 08 апр 2011, 15:25

Dimitry Sibiryakov писал(а):А MON$DATABASE.MON$READ_ONLY не оно?..
Во, классно, оно. То, чего и искал.
Спасибо.
select MON$READ_ONLY from MON$DATABASE

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Как из процедуры узнать что БД находится в режиме ReadOn

Сообщение kdv » 08 апр 2011, 17:45

склероз, извиняюсь. в уме вычисляю наименьший общий знаменатель для всех версий ФБ.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Как из процедуры узнать что БД находится в режиме ReadOn

Сообщение Dimitry Sibiryakov » 09 апр 2011, 14:45

ThreeDHead писал(а):То, чего и искал.
Сразу возникает резонный вопрос: а где же ты, собственно, искал-то?..

Ответить