Главная страница
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.016 c
3-46608
real_dimedrol
2003-04-22 21:11
2003.05.15
Вопрос по Quickreport


14-46967
UserTP
2003-04-25 22:53
2003.05.15
Русский шрифт в Turbo Pascal(срочно!!!)


6-46865
RUS1
2003-03-17 14:30
2003.05.15
господа где качнуть Indy компоненты посвежее и нахаляву??


7-47031
MAXX_MAIL
2003-03-15 19:48
2003.05.15
Расширение экрана


3-46583
Ann
2003-04-23 10:43
2003.05.15
хранимая процедура