Форум: "Базы";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
Внизошибка: не могу открыть в эксклюзивном режиме Найти похожие ветки
← →
Ильдар (2002-08-01 15:36) [0]
Base.Active := False;
try
Base.Exclusive := True;
Base.Active := True;
Base.DeleteIndex("Name");
Base.AddIndex("Name", "Имя", [ixDescending]);
Base.Active := False;
Base.Exclusive := False;
except
Application.MessageBox("Could not open Base", "ERROR", MB_OK);
end;
Base.Active := True;
и сразу еще вопрос какие параметры использовать в AddIndex?
← →
Ильдар (2002-08-02 11:22) [1]ну хоть кто-нить!!!!!
← →
SaS13 (2002-08-02 11:36) [2]При установке Exclusive = true во время проектирования свойство Active должно равняться false, так как в противном случае будет сообщение, что таблица уже используется.
← →
Ильдар (2002-08-02 12:04) [3]у меня и так active=false
← →
Mike Kouzmine (2002-08-02 12:08) [4]Если кто-то не открыл таблицу, то все должно быть нормально, а синтаксис AddIndex см. в хелпе, там все подробно с примерами
← →
Ильдар (2002-08-02 12:10) [5]а если так
Base.IndexName := "";
Base.Close;
try
Base.Exclusive := True;
Base.Open;
Check(dbiRegenIndexes(Base.Handle));
Base.Exclusive := False;
except
Application.MessageBox("Could not open Base", "ERROR", MB_OK);
end;
Base.Open;
то на строке Check - искдючение и переходит в except
← →
Anatoly Podgoretsky (2002-08-02 12:11) [6]Ильдар (01.08.02 15:36)
Почему ты решил, что именно не открывается, а скажем не другая ошибка, у тебя есть какие то тайные данные?
← →
Mike Kouzmine (2002-08-02 12:20) [7]А ты попробуй при запущенном приложении реструкт. таблицу, тебе сообщат, кто держит таблицу.
← →
Ильдар (2002-08-02 12:38) [8]Anatoly Podgoretsky © (02.08.02 12:11)
потому что говорит "не могу открыть таблицу в эксклюзивном режиме"
← →
Anatoly Podgoretsky (2002-08-02 12:46) [9]Не должно такого быть, так как выработку сообщений об ошибке ты заблокировал, значит ты не все нам сказал.
← →
Ильдар (2002-08-02 14:18) [10]сказал все
в блоке try первая строка выполняется
вторая тоже
на третьей вылетает
а на Base.Open - ошибка
← →
SaS13 (2002-08-02 14:21) [11]попробуй обработать так:
try
// тело
except
on E: Exception do
ShowMessage( E.Message )
end;
и скажи собщение кот. выдает..
← →
Ильдар (2002-08-02 14:25) [12]Object not locked
← →
SaS13 (2002-08-02 14:32) [13]В какой момент ты пытаешься выполнить этот код?
← →
Ильдар (2002-08-02 14:35) [14]по нажатию на кнопку "переиндексация", пока пробую только на одной машине (если правильно понял вопрос)
← →
SaS13 (2002-08-02 14:40) [15]тогда у меня больше никаких мыслей нет кроме того, что где-то в памяти сидит открытая табличка... может у тебя запрос к ней какой-нить открыт или еще чего, попробуй посмотри в диспетчере задач, может процесс какой остался, накрайняк перезагрузи комп..
← →
SaS13 (2002-08-02 14:47) [16]попробуй закрыть Delphi и перекинуть этот файл куда-нить, если перекинется, то что-то в Дельфях его держит, иначе - где-то сидит процесс
← →
Ильдар (2002-08-02 16:22) [17]а если запускать не из DELPHI то cannot open for exclusive use
← →
SaS13 (2002-08-02 16:25) [18]Скорее всего ты где-то в проге перед переиндексацией делаешь запрос к таблице и не закрываешь его... проверь получше.
← →
Ильдар (2002-08-05 12:12) [19]Ни один из запросов к этой таблице не обращается
← →
SaS13 (2002-08-05 12:39) [20]Неужто? =))
тогда мыль исходники, посмотрю, вдуг действительно паранойя..
← →
Anatoly Podgoretsky (2002-08-05 12:41) [21]Ильдар (05.08.02 12:12)
Значит ты не веришь БДЕ?
← →
fnatali (2002-08-05 12:45) [22]Ильдар
сделай новый проект, где напиши только эту процедуру и проверяй.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c