Форум: "Базы";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];
ВнизОткрыть таблицу в эксклюзивном режиме Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c