Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Вниз

Удаление 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
14-11471
TAIPHOON
2002-10-11 20:31
2002.11.04
Win2000Server


1-11241
Жешка
2002-10-25 11:44
2002.11.04
Есть компонент под ActiveX (.ocx). Как перенести его на другую ..


4-11568
vap
2002-09-23 23:06
2002.11.04
имя EXE файла зная hInstance


3-11061
Alecs
2002-10-11 11:56
2002.11.04
InterBase в терминальном режиме


3-11121
Roma111
2002-10-16 11:40
2002.11.04
Обработка Exception





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский