| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Проверка базы |
| Автор: RNS 20.2.2004, 11:44 |
| Народ, подскажите, как в программе проверить, открыта база или нет. Есть база ".db". Она использется двумя программами, одна изменяет ее, если это необходимо, а вторая проверяет эту базу на изменения. База может изменяться не зависимо от времени (в любое время). Просто получается, если база открыта для изменений, то во второй программе при попытке проверить базу, выпадает системная ошибка. Заранее спасибо. |
| Автор: Medved 20.2.2004, 13:59 |
| Правильно, а чего же Вы хотели? База я так понял Paradox. Поищите по форуму, неоднократно писалось, как организовать совместный доступ к локальным базам (и конкретно про Paradox). Хотя рекомендую Вам перевести свою базу на клиет-серверную платформу, если с ней будет работать более одного человека. Поверьте, это будет "дешевле". Особенно в перспективе. |
| Автор: x77 20.2.2004, 13:59 | ||
заведи какую-то таблицу. например, следующего вида:
думаю, суть ясна. первая прога, внося какие-то изменения, в эту таблицу добавляет запись, какие изменения и куда она внесла. поле keyfield необходимо для того, чтобы вторая программа могла отследить конкретную запись, в которую вносятся изменения, которая была вставлена или удалена. вторая программа опрашивает эту таблицу, если находит в ней какие-то записи, то отрабатывает их и удаляет. потом опять опрашивает. т.е. если в таблице есть записи - то изменения однозначно были. чтобы узнать, каке именно - опрашиваем таблицу. если же нужно просто знать, вносились изменения или нет, заведи одну таблицу с одним полем. первая прога пишет в него 1, если база была изменена. вторая прога, если видит единицу, выводит сообщения (или что она там делает) и ставит это поле обратно в 0. тогда вообще всё просто что касается системных ошибок. у тебя что, база открывается в режиме exclusive? |
| Автор: RNS 20.2.2004, 16:50 |
| x77 Базу открываю через: Table1.Active:=True. А что значит в режиме 'exclusive'? И какие режимы еще бывают, как их выбирать? Напиши если не трудно. И я что-то вообще не пойму, сначала при запуске второй проги, использующей базу, выдывалась ошибка, сейчас нет. Запускаются обе программы, в одной изменяю базу, в другой базе отображаются данные вместе со всеми изменениями. Не знаю, может я гоню. |