Можете ли вы получить доступ к базе данных Delphi DBIV без создания файлов блокировки? - PullRequest
0 голосов
/ 19 сентября 2008

Я пытаюсь прочитать данные из базы данных Delphi DBIV, каждый раз, когда я обращаюсь к базе данных, она создает файл Paradox.lck и Pdoxusrs.lck. Я использую только объект TQuery для этого (ничего больше). можно получить доступ к базе данных Delphi DBIV без создания этих файлов блокировки?

Ответы [ 3 ]

0 голосов
/ 19 сентября 2008

Если ваше приложение создает файлы PARADOX.LCK и PDOXUSRS.LCK, оно также создает или получает доступ к файлу PDOXUSRS.NET где-то.

BDE использует один общий файл PDOXUSRS.NET и файл PARADOX.LCK и PDOXUSRS.LCK в каждом общем каталоге для координации общего доступа среди распределенных экземпляров механизма.

Вы должны выяснить, разделяет ли ваше приложение таблицы с любым другим приложением. Если данные являются общими, вы должны разрешить BDE создавать и использовать эти файлы блокировки.

Если вы уверены, что являетесь ЕДИНСТВЕННЫМ пользователем данных, вы можете отменить создание файлов блокировки. Но - если только файлы блокировки не мешают вам делать что-то полезное, редко стоит блокировать их создание.

Записи реестра сообщают BDE, где найти его файл конфигурации. Редактор конфигурационного файла поставляется с BDE; ищите BDEADMIN.EXE или BDECFG32.EXE. Редактор конфигурации использует ту же запись реестра, чтобы определить, какой файл редактировать.

Чтобы избежать создания файлов блокировки, когда вы являетесь единственным пользователем данных:

  1. Откройте редактор настроек.

  2. Перейти к настройке | Водители | родной | ПАРАДОКС или Водители | PARADOX и обратите внимание на запись NET DIR.

  3. Установите значение NET DIR пустым.

  4. Перейти к настройке | Система | INIT, или System, и установите для LOCAL SHARE значение False.

  5. Сохраните изменения.

  6. Следуйте пути, который вы указали на шаге 2, и удалите найденный там PDOXUSRS.NET.

  7. Удалите все оставшиеся файлы PARADOX.LCK или PDOXUSRS.LCK в вашем каталоге данных.

Предупреждение: дурачиться с блокировками файлов, когда вы не понимаете их предназначения, - это хороший способ заложить кирпич в вашем приложении.

-Аль.

0 голосов
/ 20 сентября 2008

Спасибо за ваши ответы. Я рассмотрю оба ваших предложения.

А Бревелери:

Да, я знаю, что вы говорите, я не хочу их отключать, но другое приложение, которое использует базу данных, гораздо важнее, чем мое. В идеале я бы хотел, чтобы произошло следующее:

Мое приложение начинает получать данные, если другое приложение хочет использовать базу данных, тогда мое приложение останавливается.

В данный момент происходит прямо противоположное.

Стью.

0 голосов
/ 19 сентября 2008

Почему вы не хотите блокировать файлы? Не вдаваясь в подробности, я предполагаю, что эти файлы блокировки имеют реальное назначение

Прошло много времени с тех пор, как я использовал BDE, но вы не можете использовать какое-либо ключевое слово в запросе SELECT, чтобы указать, что вы не хотите никакой блокировки?

Например, в MS SQL вы можете использовать следующий синтаксис:

SELECT * WITH(NOLOCK)
FROM SomeTable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...