![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по базам данных [D4, dBase, FoxPro]
Vovan © (2003-01-28 20:28:00)Вопрос следующий:
требуется заблокировать базу (формат DBF) из программы, я пользуюсь командой LockTable - всё работает путём. Теперь вопрос - как ОПРЕДЕЛИТЬ из той же самой программы (но запущенной второй копии) блокированна указанная база или нет. Команды типа DbiIsTablelocked или DbiIsRecordLocked не работают.
MsGuns (2003-01-28 21:52:00) [1]Очень просто.
isEditEnable := true;
isTableView := true;
try
Table1.Active := true;
Table1.Active := false;
except
isTableView := false;
exit;
end;
try
if Table1.RecordCount>0 then
Table1.Edit
else
Table1.Append;
Table1.Cancel;
else
isEditEnable := false;
end;
Вообще-то лучше использовать св-во Exclusive. Или для одной таблицы или для всей БД в целом. Lock - старая технология.
Кстати, использование блокировок при редактировании таблы юзером - плохой стиль. Только для программных проверок или ревизий (архивация-разархивация, чистка, реструктурирование и т.д.)