Страница 1 из 1
Как из процедуры узнать что БД находится в режиме ReadOnly?
Добавлено: 06 апр 2011, 18:42
ThreeDHead
Т.е. если БД в режиме только для чтения, то не делать такие-то операции.
Firebird 2.1.1 (Windows Build)
Re: Как из процедуры узнать что БД находится в режиме ReadOn
Добавлено: 07 апр 2011, 21:42
kdv
из процедуры - никак. узнать что база в read-only можно только с клиента. gstat -h, сотв. вызов Services API, или (вроде) TIBDatabaseInfo.
Re: Как из процедуры узнать что БД находится в режиме ReadOn
Добавлено: 08 апр 2011, 08:38
ThreeDHead
kdv писал(а):из процедуры - никак. узнать что база в read-only можно только с клиента. gstat -h, сотв. вызов Services API, или (вроде) TIBDatabaseInfo.
Спасибо за ответ.
Но решение всё-таки нашел - создать таблицу DBMODE, в ней установить в поле READONLY = 1, _перед_ переводом БД в ReadOnly. А из процедуры уже осуществлять проверку по этой таблице и полю.
Вообще то я думал что из системных таблиц можно эту инфу взять.
Re: Как из процедуры узнать что БД находится в режиме ReadOn
Добавлено: 08 апр 2011, 14:26
Dimitry Sibiryakov
А MON$DATABASE.MON$READ_ONLY не оно?..
Re: Как из процедуры узнать что БД находится в режиме ReadOn
Добавлено: 08 апр 2011, 15:25
ThreeDHead
Dimitry Sibiryakov писал(а):А MON$DATABASE.MON$READ_ONLY не оно?..
Во, классно, оно. То, чего и искал.
Спасибо.
select MON$READ_ONLY from MON$DATABASE
Re: Как из процедуры узнать что БД находится в режиме ReadOn
Добавлено: 08 апр 2011, 17:45
kdv
склероз, извиняюсь. в уме вычисляю наименьший общий знаменатель для всех версий ФБ.
Re: Как из процедуры узнать что БД находится в режиме ReadOn
Добавлено: 09 апр 2011, 14:45
Dimitry Sibiryakov
ThreeDHead писал(а):То, чего и искал.
Сразу возникает резонный вопрос: а где же ты, собственно, искал-то?..