Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

FireBird и база на USB-FLASH

2.1K
18 января 2007 года
mainigor
151 / / 21.10.2005
По желанию заказчика база должна находиться на съёмном носителе, например USB-FLASH. База работает под управлением FireBird. В течении дня может понадобиться извлечь FLASH. Это нужно сделать не повредив базу.

Вопрос : как это сделать ?
Ведь FireBird по идее держит файл базы.
Можно :
1. Запарковать файл. Есть nbackup -L, но это для бэкапа, не подходит. Нужно будет работать с базой, а файл забэкапили. :(
2. Остановить FireBird и таким образом он оставит базу в покое. Но как сделать это из своего пиложения?
3. Может есть ещё НЕЧТО ?
294
19 января 2007 года
Plisteron
982 / / 29.08.2003
Цитата: mainigor
По желанию заказчика база должна находиться на съёмном носителе, например USB-FLASH. База работает под управлением FireBird.
3. Может есть ещё НЕЧТО ?

Извиняюсь, что немного не в тему, но НЕЧТО действительно есть: у Flash ограниченное количество циклов перезаписи (чтения -- сколько угодно). Боюсь, флэшка умрёт быстро. Лучше купить ноутбучный винт гиг на 40 (желательно с большим кэшем и низкооборотистый, если найдёшь) и USB-контейнер.

2.1K
19 января 2007 года
mainigor
151 / / 21.10.2005
Цитата: Plisteron
Извиняюсь, что немного не в тему, но НЕЧТО действительно есть: у Flash ограниченное количество циклов перезаписи (чтения -- сколько угодно). Боюсь, флэшка умрёт быстро. Лучше купить ноутбучный винт гиг на 40 (желательно с большим кэшем и низкооборотистый, если найдёшь) и USB-контейнер.



Сейчас у клиента работает приложение (программа написана в Access и база соответственно), которое я переделываю.
Так вот это приложение работает на flash-ке (64M) около 2 лет. Работают они в нём если не каждый день , то в краёнем случае через день.:mad: Меня тоже это смутило. Но, факт.

294
22 января 2007 года
Plisteron
982 / / 29.08.2003
Цитата: mainigor
Сейчас у клиента работает приложение (программа написана в Access и база соответственно), которое я переделываю.
Так вот это приложение работает на flash-ке (64M) около 2 лет. Работают они в нём если не каждый день , то в краёнем случае через день.:mad: Меня тоже это смутило. Но, факт.



Что ж, значит, с флэшкой повезло. На кубанском форуме по одному эсу одно время бурно обсуждалась работа с информационными базами 1С на флэшке. Было описано довольно много случаев полной потери данных на флэшках.
Опять же, работа работе рознь. Если в Вашем случае в основном идут выборки данных, а изменения или добавления данных сравнительно редки, то, соответственно, и флэшка проживёт долго.

92
22 января 2007 года
Тень Пса
2.2K / / 19.10.2006
Цитата: mainigor

2. Остановить FireBird и таким образом он оставит базу в покое. Но как сделать это из своего пиложения?



вот этот вариант можно сделать следующим образом, если твоё приложение будет стоять на той же машине где и Firebird:

запости ФайрБёрду windows_message wm_Close... [просто попросит его закрыться]... проканает, если идёт просто завершение работы приложения без всяких вопросов и диалогов... вот... отмонтировать влёшку я думаю можно какими-нибудь WinAPI функциями (просто не пробовал).

ну или если FireBird висит как служба (не разу не пользовал), то службу остановить )

просто идея, ведь нужны просто идеи? ;)

не знаю насколько подойдет тебе такой вариант, но в принципе, я думаю это приемлемо... как бы вот так.

2.1K
23 января 2007 года
mainigor
151 / / 21.10.2005
Цитата: Тень Пса
вот этот вариант можно сделать следующим образом, если твоё приложение будет стоять на той же машине где и Firebird:

запости ФайрБёрду windows_message wm_Close... [просто попросит его закрыться]... проканает, если идёт просто завершение работы приложения без всяких вопросов и диалогов... вот... отмонтировать влёшку я думаю можно какими-нибудь WinAPI функциями (просто не пробовал).

ну или если FireBird висит как служба (не разу не пользовал), то службу остановить )

просто идея, ведь нужны просто идеи? ;)

не знаю насколько подойдет тебе такой вариант, но в принципе, я думаю это приемлемо... как бы вот так.



Идея как и ранее проста - нужно, выйдя из приложения и выдернув flash не повредить базу. Отмонтируют-то они её штатными средствами. Меня беспокоит вот что. Когда юзер покидает приложение (FireBird запущен и работает). Находится ли база в коннекте, и можно ли её отсоединить ?
Я воспользовался мониторингом обращения к файлу базы. FireBird его теребит как на входе так и выходе, но не обращается, к ней если окно приложения с базой не активны. В момент работы приложения ясно , что flash нельзя вынимать хотя обращений к ней нет. А вот после дисконнекта ? Значит ли что FireBird после этого скинул все свои буфферы на диск ?
Другими словами не хочется нагружать юзеров, чтоб они еще в апплете FireBird тушили.

92
23 января 2007 года
Тень Пса
2.2K / / 19.10.2006
[quote=mainigor]Идея как и ранее проста - нужно, выйдя из приложения и выдернув flash не повредить базу. Отмонтируют-то они её штатными средствами. Меня беспокоит вот что. Когда юзер покидает приложение (FireBird запущен и работает). Находится ли база в коннекте, и можно ли её отсоединить ?
Я воспользовался мониторингом обращения к файлу базы. FireBird его теребит как на входе так и выходе, но не обращается, к ней если окно приложения с базой не активны. В момент работы приложения ясно , что flash нельзя вынимать хотя обращений к ней нет. А вот после дисконнекта ? Значит ли что FireBird после этого скинул все свои буфферы на диск ?
Другими словами не хочется нагружать юзеров, чтоб они еще в апплете FireBird тушили.[/quote]

ну значит нужно проверить:
создать какую-нить левую БД записать также на Flash и протестить, будет потеря данных или нет... ну а как еще?.. я лично другого способа не вижу... ну как минимум потому, что никогда не работал с FireBird
547
24 января 2007 года
Hydra
488 / / 20.06.2006
Варианты:
1. Если база локальная - пользуй embedded server - он точно по закрытию базы буфера флушит.
2. Сходи сюда и полистай маны - об этом что-то было.
3. см. OpenService, ControlService
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог