Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Огромные LCK-файлы (Lock File Has Grown Too Large)

01.01.2007

Вариант 1.

Если .EXE-файл расположен в том же каталоге, что и таблица Paradox, и флажок Local Share установлен в TRUE, то .LCK-файл с каждым запросом растет как на дрожжах. Другое условие - вы имеете соединение посредством DbiOpenTable или TTable.Open.

РЕШЕНИЕ:

Author: Scott Frolich

Source: Советы по Delphi от Валентина Озерова

Сборник Kuliba


Вариант 2.

Эта проблема специфична для таблиц формата Paradox, относится как 16 битным, так и 32 битным версиям BDE, и может встречается при выполнении одного из следующих условий:

  1. Исполняемый файл приложения находится в той же папке, что и таблица.
  2. Некорректно установлен (неустановлен) параметр Private Directory.
  3. Открытая в TTable таблица Paradox участвует в запросах TQuery.
  4. Параметр LOCAL SHARE установлен в True (BDE Administrator, закладка "System")

Для решения проблемы необходимо выполнить следующие шаги:

  1. В папке с исполняемым файлом приложения создайте три новых папки: TABLES, PRIV и NET (длина пути NetDir не должна привышать 31 символа). Поместите все таблицы приложения в папку Tables

  2. Во время исполнения Ваше приложение должно устанавливать значения:

    Session.PrivateDir := ExtractFilePath(ParamStr(0)) + 'PRIV';
    Session.NetFileDir := ExtractFilePath(ParamStr(0)) + 'NET';
    
  3. Убедитесь, что значение LOCAL SHARE установлено в False (BDE Administrator, закладка "System")

Эти рекомендации позволяют избежать ошибки "Lock File Too Large".

Примечание

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

  1. Не размещайте базу и программу в одной папке, тем более, что программу желательно поместить в защищенную от записи папку.

  2. Приватный каталог надо разместить в персональной папке, желательно для каждой запущенной копии приложения отдельный, подходящее место персональная папка TEMP\SessionID\

  3. Сетевой каталог NETDIR - выделить отдельную папку на сети исключительно только для этой цели и единную для всех приложений BDE

  4. LOCAL SHARE - TRUE, можно попробовать и FALSE, если это не будет приводить к порче индексов.

Source: https://delphiworld.narod.ru

Previous page:
Database index out of date error
Top:
DRKB
Next page:
BDE Error 2B04 Too many open files