Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.15;
Скачать: CL | DM;

Вниз

Открыть таблицу в эксклюзивном режиме   Найти похожие ветки 

 
denary   (2003-04-23 01:31) [0]

Господа мастера, помогите чайнику, замучился!
Не могу открыть таблицу в экслюзивном режиме. Что ни делал - Table is busy. В чем причина может быть?

Table1.Active := False;
repeat { until successful or Cancel button is pressed }
try
Table1.Exclusive := True;
Table1.Active:=True; //здесь получаем ругательство типа
// Table is busy
Break; { If no error, exit the loop }
except
on EDatabaseError do
{ Ask if it is OK to retry. If it isn’t, reraise to abort }
if Application.MessageBox(
"Could not open Table1 exclusively - Try again?",

"Open Error",
MB_OKCANCEL + MB_DEFBUTTON1) <> IDOK then
raise;
{ Otherwise resume the repeat loop }
end;
until False;
// Make sure the table is open exclusively so we can get the db handle...
if not Table1.Active then
raise EDatabaseError.Create("Table must be opened to pack");
if not Table1.Exclusive then

raise EDatabaseError.Create("Table must be opened exclusively to pack");

// Get the table properties to determine table type...
Check(DbiGetCursorProps(Table1.Handle, Props));

// If the table is a dBASE table, simply call DbiPackTable...
if (Props.szTableType = szDBASE) then
Check(DbiPackTable(Table1.DBHandle, Table1.Handle, nil, szDBASE, True))
else
// Pack only works on PAradox or dBASE; nothing else...
raise EDatabaseError.Create("Table must be either of Paradox or dBASE " +

"type to pack");


 
Виталий Панасенко   (2003-04-23 08:33) [1]

Похоже в среде таблица открыта во время дизайна ...


 
ККВ ©   (2003-04-23 09:21) [2]

Делфи тоже является пользователем таблицы...


 
denary   (2003-04-24 02:16) [3]

Во время дизайна специально поставил Active=False, только при событии Form.OnShow во время выполнения делаю Table1.Open. Не помогает. Если Делфи тоже является пользователем таблицы, как же тогда программно открыть эксклюзивно?


 
Дмитрий К.К. ©   (2003-04-24 08:26) [4]

Трудно закрыть Дельфю, запустить прогу на выполнение и проверить, открывается ли таблица экслюзивно в этом случае?


 
AlexSerp ©   (2003-04-24 08:34) [5]

Правой клавишей по компоненту таблицы - жмак.
Выбрать Explore - откроется SQLExplorer, а в нем ты увидишь, что твоя база открыта.
Закрой ее и будет тебе щасье.



 
denary   (2003-04-25 00:41) [6]

Спасибо всем за помощь, заработало! до меня наконец дошло, что приложение при запуске создает все свои формы (FormCreate), и если хоть в одной из них в дизайне было указано Table1.Active=True, таблица будет занята. Даже если эта форма никогда не открывается.
Еще раз спасибо всем.


 
Дмитрий К.К. ©   (2003-04-25 09:12) [7]

Форма не открывается, но создается! То-то же...



Страницы: 1 вся ветка

Текущий архив: 2003.05.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
3-46652
Agabr
2003-04-24 16:34
2003.05.15
MIDAS


1-46815
YurA
2003-05-01 22:16
2003.05.15
QReport


3-46640
softmaster
2003-04-15 23:03
2003.05.15
логический тип


8-46852
Городецкий Д.
2003-02-05 13:11
2003.05.15
Выполнение любого файла.


6-46870
sapsi
2003-03-18 08:22
2003.05.15
Организация удаленного подключения к локальной сети