|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
У меня такой вопрос. Есть программа exe-файл и файл БД (FireBird 2.1). Всё работает. Но пользователь хочет перевести БД в режим readOnly, но чтобы при этом программа работала без ошибок. Что я должен изменить в программе? Использую компоненты FIBPlus. Может можно как-то в программе, при запуске, определить, что БД readOnly, а потом пробежаться по всем компонентам и что-то там в свойствах перенастроить? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 15:32 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
Vad72Может можно как-то в программе, при запуске, определить, что БД readOnly, а потом пробежаться по всем компонентам и что-то там в свойствах перенастроить? Конечно. Перебираем все контролы и ставить им Enabled=False/Visible=False и т.п. Получаем серенькую формочку. P.S. А чем обусловлено желание БД перевести именно в R/O режим? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 15:45 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
DarkMasterVad72Может можно как-то в программе, при запуске, определить, что БД readOnly, а потом пробежаться по всем компонентам и что-то там в свойствах перенастроить? Конечно. Перебираем все контролы и ставить им Enabled=False/Visible=False и т.п. Получаем серенькую формочку. P.S. А чем обусловлено желание БД перевести именно в R/O режим? ну клиент типа раз в год делает копию базы, переводит в этот режим. В текущей (активной/рабочей) БД удаляет историю больше года. Но при запуске программы можно выбрать "архивную базу / которая readOnly. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 17:52 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
Vad72, Тебе в другой ветке сказали - API. Или вызываешь сам или ищешь обертку, которая сможет сделать это вместо тебя. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 17:55 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
DarkMaster, Должен быть или FIBDatabaseInfo, или у FIBDatabase должна быть проперть, которая показывает, что открытая база в read-only. С компонентами самый простой путь - вообще ничего не делать, если без попыток модификации приложение будет работать с такой БД без ошибок. Единственное - где-нибудь красным вывести Label или что-то вроде, мол, "БД открыта в режиме "только чтение", поэтому любая попытка изменения данных приведет к ошибке". ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 18:12 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
kdv, Еще как вариант - все транзакции в этом случае запускать в R/O (вот не помню, модифицирущая транзакция в FIB+ управляема?) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 18:18 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
kdvС компонентами самый простой путь - вообще ничего не делать, если без попыток модификации приложение будет работать с такой БД без ошибок. Ну я именно так и сказал ещё в начале топика. Только оно не будет из-за привычки фибов препарировать модифицирующие запросы при открытии датасета. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 18:22 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
DarkMasterkdv, Еще как вариант - все транзакции в этом случае запускать в R/O (вот не помню, модифицирущая транзакция в FIB+ управляема?) абсолютно , там надо просто снять галку autocommit ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 23:02 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
Мне только одному кажется что без правки исходников автором результат будет как минимум неудовлетворительный? Программа должна быть расчитана на работу с R/O базой. Например, ставится блокировка холостым UPDATE, или триггера в базе ведут логи... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2015, 10:17 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
fraks, фигня это всё с блокировками записей. Если уж на то пошло то в идеале просто диалоги редактирования не должны вызываться вовсе (кнопки их вызова задисейблены или вообще не видны), что бы пользователь и не пытался ничего редактировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2015, 10:26 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
_док_DarkMasterkdv, Еще как вариант - все транзакции в этом случае запускать в R/O (вот не помню, модифицирущая транзакция в FIB+ управляема?) абсолютно , там надо просто снять галку autocommit я правильно понял, что если эту галку снять всем TpFIBDataSet , то пользователь (программа) будет работать без вываливания ошибок. Пользователь, если что-то там и изменит, то ни фига не сохранится, правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2015, 11:39 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
Vad72я правильно понял программа твоя, откуда мы знаем, как она заработает если ты что-то там выключишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2015, 12:00 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
Симонов Денисfraks, фигня это всё с блокировками записей. Если уж на то пошло то в идеале просто диалоги редактирования не должны вызываться вовсе (кнопки их вызова задисейблены или вообще не видны), что бы пользователь и не пытался ничего редактировать. И откуда взялось утверждение что запись в базу происходит исключительно при нажатии юзером кнопки "Записать"? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2015, 04:59 |
|
Хочу сделать свою БД read-only, не знаю, как
|
|||
---|---|---|---|
#18+
Симонов Денисfraks, фигня это всё с блокировками записей. Если уж на то пошло то в идеале просто диалоги редактирования не должны вызываться вовсе (кнопки их вызова задисейблены или вообще не видны), что бы пользователь и не пытался ничего редактировать. Более того, писать может даже не клиентское приложение а процедуры на сервере. Например вызываешь процедуру поиска которая вроде бы ничего не пишет, а она унутре пишет лог поисковых запросов. И если эта процедура будет вызвана в R/O-транзакции то даст исключение. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2015, 05:02 |
|
|
start [/forum/topic.php?fid=40&msg=39116657&tid=1562475]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 169ms |
0 / 0 |