Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ошибка: не могу открыть в эксклюзивном режиме [D6, Paradox]


Страницы:   1 2

Ильдар ©   (2002-08-01 15:36:00) 

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?


fnatali   (2002-08-05 12:45:00) [1]

Ильдар
сделай новый проект, где напиши только эту процедуру и проверяй.


Anatoly Podgoretsky   (2002-08-05 12:41:00) [2]

Ильдар (05.08.02 12:12)
Значит ты не веришь БДЕ?


SaS13   (2002-08-05 12:39:00) [3]

Неужто? =))
тогда мыль исходники, посмотрю, вдуг действительно паранойя..


Ильдар   (2002-08-05 12:12:00) [4]

Ни один из запросов к этой таблице не обращается


SaS13   (2002-08-02 16:25:00) [5]

Скорее всего ты где-то в проге перед переиндексацией делаешь запрос к таблице и не закрываешь его... проверь получше.


Ильдар   (2002-08-02 16:22:00) [6]

а если запускать не из DELPHI то cannot open for exclusive use


SaS13   (2002-08-02 14:47:00) [7]

попробуй закрыть Delphi и перекинуть этот файл куда-нить, если перекинется, то что-то в Дельфях его держит, иначе - где-то сидит процесс


SaS13   (2002-08-02 14:40:00) [8]

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


Ильдар   (2002-08-02 14:35:00) [9]

по нажатию на кнопку "переиндексация", пока пробую только на одной машине (если правильно понял вопрос)


SaS13   (2002-08-02 14:32:00) [10]

В какой момент ты пытаешься выполнить этот код?


Ильдар   (2002-08-02 14:25:00) [11]

Object not locked


SaS13   (2002-08-02 14:21:00) [12]

попробуй обработать так:
try
// тело
except
on E: Exception do
ShowMessage( E.Message )
end;
и скажи собщение кот. выдает..


Ильдар   (2002-08-02 14:18:00) [13]

сказал все
в блоке try первая строка выполняется
вторая тоже
на третьей вылетает
а на Base.Open - ошибка


Anatoly Podgoretsky   (2002-08-02 12:46:00) [14]

Не должно такого быть, так как выработку сообщений об ошибке ты заблокировал, значит ты не все нам сказал.


Ильдар   (2002-08-02 12:38:00) [15]

Anatoly Podgoretsky © (02.08.02 12:11)
потому что говорит "не могу открыть таблицу в эксклюзивном режиме"


Mike Kouzmine   (2002-08-02 12:20:00) [16]

А ты попробуй при запущенном приложении реструкт. таблицу, тебе сообщат, кто держит таблицу.


Anatoly Podgoretsky   (2002-08-02 12:11:00) [17]

Ильдар (01.08.02 15:36)
Почему ты решил, что именно не открывается, а скажем не другая ошибка, у тебя есть какие то тайные данные?


Ильдар   (2002-08-02 12:10:00) [18]

а если так
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


Mike Kouzmine   (2002-08-02 12:08:00) [19]

Если кто-то не открыл таблицу, то все должно быть нормально, а синтаксис AddIndex см. в хелпе, там все подробно с примерами


Ильдар   (2002-08-02 12:04:00) [20]

у меня и так active=false


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо