По советам гуру этого форума решил отказаться от использования базы данных в формате DBF компонента и перейти на другой.
Сейчас перевожу код, работающий на компоненте TDBF в TSqlite3Dataset. Все, в общем, получилось, но возникли несколько вопросов, может кто-нибудь поможет в разъяснении их.
1) В компоненте TSqlite3Dataset процедура PackTable отсутствует. Но как производить упаковку таблиц? Неужели после каждого удаления записи происходит физическое удаление записи? Или эта процедура не реализована в компоненте и следует делать непосредственно запрос SQL?
2) А как создается индекс в Sqlite3DataSet? В TDBF пользовался методом AddIndex. Теперь следует пользоваться свойством IndexFieldNames? Это свойство нужно определять также после открытия базы данных? В эксклюзивном доступе? Правда в компоненте отсутствует логическое свойство Exclusive.
3) Касательно DBF-овских Exclusive и LockTable - они отсутствуют в TSqlite3Dataset, то есть это понимать как то, что в них нет надобности и, скажем, если один пользователь обратился к таблице для добавления записи, а другой решил создать индекс, то второй пользователь просто подождет (видимо "подзависнет") на время работы первого. Я так понимаю?