Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.04;
Скачать: CL | DM;

Вниз

Удаление dbf-таблицы в рантайм   Найти похожие ветки 

 
slgeo   (2002-10-14 10:29) [0]

Народ, никак не могу побороть.(
Надо в рантайм удалить таблицу dbf. При попытке просмотра или удаления
внешними программами во время выполнения приложения вываливает: "Error
occured while opening table aaa.dbf".
Естестно в рантайм она тоже не удаляется. Где она открыта никак не пойму. Я
ее использую как временную таблицу, потом пишу
DbfTable.Active := False;
DbfTable.TableName := "";

Как лечить?


 
sniknik ©   (2002-10-14 10:38) [1]

закрой в отладчике (Delphi) т.е. сделай так чтобы программа стартовала с DbfTable.Active равным False а в каком нибудь событии открывай (OnCreate?).


 
slgeo   (2002-10-14 10:46) [2]

>sniknik © У меня в отладчике так и выставлено DbfTable.Active := False;

Вся привязка к таблице происходит в рантайм(имя таблицы, путь, открытие). Использую компонент Tdbf.


 
sniknik ©   (2002-10-14 11:02) [3]

насколько я знаю (по слухам) Tdbf имеет единственный режим Exclisive. т.е. второй раз нигде не откроеш. Если это правда то сам компонент ее и держит, попробуй не просто присвоить "" а открыть другую таблицу и после удалится?


 
slgeo   (2002-10-14 11:07) [4]

>sniknik © И это пробовал, не помогает (


 
sniknik ©   (2002-10-14 11:27) [5]

а если не подключать? изначально (не делай DbfTable.Active := True). то тогда как? чтобы выяснить виноват компонент или где?


 
slgeo   (2002-10-14 11:44) [6]

>sniknik © Все нормально, пока DbfTable.Active не станет True.
Слишком сильно привязывается, не оторвать :)


 
ЮЮ ©   (2002-10-14 11:47) [7]

остаётся DbfTable создавать в RunTime. Free, надеюсь, оторвёт !


 
sniknik ©   (2002-10-14 12:03) [8]

а у этого Tdbf-а исходники есть? может это его глюк, незакрытие файла после работы с ним? Тогда и Free может не помоч. (если в одном месте пропустили ио и в другом возможно)


 
slgeo   (2002-10-14 12:16) [9]

Create и Free в рунтайм тоже не помогает. Похоже придется ковырять исходники Tdbf или переходить на что-нибудь другое.


 
gek ©   (2002-10-14 12:21) [10]

Наверное
DROP TABLE


 
slgeo   (2002-10-14 15:13) [11]

DROP Table пишет Table is busy


 
gek ©   (2002-10-14 15:25) [12]

> slgeo (14.10.02 15:13)
значит таблица открыта еше где-то
См где


 
Geka   (2002-10-14 15:28) [13]

Напиши небольшую програмку, попробуй ничего лишнего при этом не делать. Если не идет кусок большой программы, то сделай его программой(тогда ничего лишнего мешать не будет :) и найди ошибку. И оптимально: только в Query : DROP TABLE. Если и при этом не дает, то точно база где-то занята. Напимер, в Delphi где-то в какой-то из компанент Query или Table свойство Active стоит True.
Можно еще проверить базу на ключи. Возможна связь с другими базами.



 
slgeo   (2002-10-14 15:56) [14]

Так ведь тот же код через ADO работает, после Active:=False, таблица удаляется.
Так что это глюк TDbf. Говорили умные люди не использовать компоненты сторонних разработчиков, а я их все-таки не послушал.
Что ж будем впредь умнее.



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

Текущий архив: 2002.11.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
1-11225
Юрий
2002-10-22 22:53
2002.11.04
Как создать событие в компоненте?


1-11152
4nikandr
2002-10-24 13:53
2002.11.04
Возведение в степень


1-11238
Dankin
2002-10-25 02:37
2002.11.04
Подскажите плз. Как подкрасить числа на календаре, несколько штук


7-11511
Tiger
2002-09-02 11:44
2002.11.04
Компоненты для записи CD


1-11242
Beglec
2002-10-23 02:30
2002.11.04
Интересный косяк