Главная страница
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.015 c
3-46578
Silver_
2003-04-23 10:39
2003.05.15
TADODataSetEvents как сделать или где взать


11-46675
Kirill
2002-08-12 12:53
2003.05.15
Font Dialog


8-46853
Igor__
2002-11-01 05:41
2003.05.15
Микшер


14-47001
DeMoN-777
2003-04-26 13:02
2003.05.15
Чем дальше, тем.........


1-46695
Rradion
2003-05-01 19:53
2003.05.15
Помогите плиз отсортировать Массив.