Вниз
Скачать: CL | DM;

Банальный Table is busy   Найти похожие ветки 

← →
AlexNord   (2003-11-25 07:49) [0]

Люди памажите плиз, смарите ситуация, создается 5 табличек и перед созданием удаляется, так вот почему то при удалении пятой Table is busy ? Active в false все действия как с предыдущими 4-мя и только с ней ошибка и нифига не могу сделать, даже удалял с дата модуля компонент TTable и заново создавал, а нифига не помогло!Переставлял винду све с нуля в общем я не знаю ваще уже чего делать.......


← →
ZHK ©   (2003-11-25 08:08) [1]

Если Active в False, это означает, что таблица занята другим приложением, например отладчиком Delphi. Попробуй запустить программу без отладчика, либо ищи, какой компонент еще открывает у тебя таблицу. А вообще в таких случаях лучше код кидать.


← →
chtr ©   (2003-11-25 08:08) [2]

Попробуй в design time active:=false?
Может поможет?


← →
AlexNord   (2003-11-25 08:40) [3]

Я выключаю Active перед удалением, иначе ошибку даст...друиге приложения не трогают ее, все происходит в разрезе одного модуля...странно что теже действия с рдугими таблицами проходят а с этой ну никак..(
DatM.Part5Kotl.Active:=False;
DatM.Part5Kotl.TableName:=Name_4;
if DatM.Part5Kotl.exists then DatM.Part5Kotl.DeleteTable;<-тут ошибку дает...


← →
ЮЮ ©   (2003-11-25 08:46) [4]

Ты используешь один компонент DatM.Part5Kotl для оаботы со всеми 5-ю таблицами?


← →
chtr ©   (2003-11-25 08:47) [5]

Закрой делфи и запусти EXE


← →
AlexNord   (2003-11-25 08:53) [6]

"Ты используешь один компонент DatM.Part5Kotl для оаботы со всеми 5-ю таблицами?"
Нет для всех 5-ти свои ....


← →
AlexNord   (2003-11-25 08:55) [7]

С ексешником тоже самое.....(


← →
ЮЮ ©   (2003-11-25 09:06) [8]

>Нет для всех 5-ти свои
зачем тогда строка DatM.Part5Kotl.TableName:=Name_4;?

>создается 5 табличек и перед созданием удаляется,

Все TableName следует установить в Инспекторе, а все Active установить в False. А Table.Open делать только в коде


← →
AlexNord   (2003-11-25 09:19) [9]

Не не выходит все равно..( ЮЮ © (25.11.03 09:06) [8]


← →
AlexNord   (2003-11-25 09:31) [10]

а строка имя иднамическое взависимости от месяца может быть Part5Kotl1.db, Part5Kotl2.db и так далее до 12...TableName динамически присваивается....


← →
AbrosimovA   (2003-11-25 11:17) [11]

Перед удалением делай проверку - открыта или нет таблица.
Если закрыта - удаляй, если открыта - закрывай и удаляй.


← →
AlexNord   (2003-11-25 12:15) [12]

Открыта или закрыта это Active ?? естесно оно в False ....


← →
AbrosimovA   (2003-11-25 12:59) [13]

А exclusive в каком состоянии на момент удаления?


← →
AlexNord   (2003-11-26 00:53) [14]

Я пробовал и в False его и в True, по барабану ему все...


← →
AbrosimovA   (2003-11-26 08:25) [15]

А ты точно выполнил рекомендации
> chtr © (25.11.03 08:47) [5]
> Закрой делфи и запусти EXE
.
Нужно закрыть ещё и Database Desktop, SQL Explorer и т.д.
И ещё. Я не совсем понял - у тебя 5 таблиц или 12?


← →
AlexNord   (2003-11-26 08:30) [16]

AbrosimovA Перебробовали с колегами все...Закрыто все везде ...мы непонимаем что это почему так именно с этой таблой...(


← →
AlexNord   (2003-11-26 08:48) [17]

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


← →
AbrosimovA   (2003-11-26 08:50) [18]

Вот у тебя код:

> DatM.Part5Kotl.Active:=False;
> DatM.Part5Kotl.TableName:=Name_4;

1-я строка закрывает таблицу Name_3.
2-я строка выбирает следующую таблицу Name_4.
Но дальше нет кода для закрытия Name_4.
Попробуй поменять местами 1-ю и 2-ю строки кода.


← →
AlexNord   (2003-11-26 09:06) [19]

нее не помогло...пойду повешусь блин..((( проект замер.(((


← →
AlexNord   (2003-11-26 09:07) [20]

TableName-тут имя физическое файла таблицы передается - Name_4 - это параметр процедуры...оно передается правильно...


← →
AbrosimovA   (2003-11-26 09:18) [21]

Однозначно занят физический файл, но вопрос: Кем или чем?
Либо у файла атрибут "Только чтение" либо приведи полный код работы с базами.
А проект не секретный, ты бы выслал, а я посмотрел.


← →
Anatoly Podgoretsky ©   (2003-11-26 09:20) [22]

Вероятно где ни будь в проекте, в каком нибудь модуле есть еще один экземпляр таблицы, открытый, это любимое дело программиста.


← →
Vovchik_A ©   (2003-11-26 10:32) [23]

Где-то табличка твоя однозначно открыта - ищи баг в коде


← →
AlexNord   (2003-11-27 06:14) [24]

Всем спасибо за участие, я исправил багу, просто сменил имя таблички физическое, но вот ума не приложу, не могу найти где она зацепилась именно по старому имени...))СПАСИБО ВСЕМ!)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.5 MB
Время: 0.012 c
4-62312
zdn
2003-10-25 18:17
2003.12.19
Блокировка файла


14-62223
3dcat
2003-11-27 21:17
2003.12.19
Нужны разработчики


14-62285
undert
2003-11-23 17:35
2003.12.19
Если Мастера Delphi не могут дать ответа по Delphi,будут про PHP


1-62021
avk
2003-12-06 16:38
2003.12.19
StringGrid


3-61900
karburator
2003-11-27 12:37
2003.12.19
выч. поле в SQL




   Наверх