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

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

Не удаляется файл БД! [D1, D2, D3, D4, D5, D6, D7, dBase, FoxPro]


csr ©   (2003-10-16 17:41:00) 

Помогите плз! Возник трабл с БД. Ситуация: программа в run-time создает базы данных (dBase) и автоматически загружает в грид. Другими словами юзер нажимает кнопку - создается БД (файл сохраняется в поддиректории). Проблема в следующем: как во вермя работы программы УДАЛИТЬ созданные базы? Файлы БД блокируются и не удаляются (файл используюется другим приложением)! Пробовал отключать dataset - безрезультатно. Может кто-нить знает как решить трабл?


csr   (2003-10-22 11:14:00) [1]

2 DenK_vrtz: Ты прав.
2 Anatoly Podgoretsky: Я пытался создать ф-цию аналогичную DeleteTable в TTable (это и есть drop table). Почти получилось- файл удаляется но с эксэпшеном :(. А вытянуть ф-цию DeleteTable из TTable не могу , т.к. она обращается к БДЕ!


Anatoly Podgoretsky   (2003-10-21 09:13:00) [2]

И ты только спустя 4 дня смилостивился и решил нам сообщить что же ты конкретно используешь. И свое время не ценишь и чужим бесцеремонно распоряжаешься.


DenK_vrtz   (2003-10-21 08:39:00) [3]

csr [8], я уверен, что неправильно ты подозреваешь tdataset.close - закрывает набор данных, а drop table - удаляет таблицу!
Аналогично tdataset.open - открывает НД, а create table - создает таблицу


csr   (2003-10-20 20:54:00) [4]

Спасибо за отклики!!!
2 mOOx_: Я не использую TDataBase.
2 Vorobyev Sergey: Я тоже пробовал CreateTable - действительно создается новая БД вместо прошлой! Однако меня это не устраивает, т.к. остается тем не менее файл БД! А мне его необходимо удалить, т.к. призагрузке программа сканирует директорию, и названия всех .dbf файлов в ней записываются в TTabSet. А уже потом по OnTabSetChange() в ДБГрид загружается соответствующая таблица.
2 DenK_vrtz: Я не использую TQuery, и соответственно SQL запросы. Я вообще не использую ни BDE ни ADO! Есть такой компонент для доступа к данным как TDBF (это типа TTable, но без юнита dbtables, в общем без БДЕ). Но я тем не менее подозреваю, что drop table = tdataset.close !


Vorobyev Sergey   (2003-10-20 09:51:00) [5]


> Удалить таблицу - drop table имя_таблицы

Точно..!! Забыл про это сказать..
Тогда будет все н..!


DenK_vrtz   (2003-10-20 08:14:00) [6]

csr, уверен что один DataSet связан с таблицей, которую хочешь удалить?
А может еще кто эту таблицу использует!

Удалить таблицу - drop table имя_таблицы


Vorobyev Sergey   (2003-10-20 07:45:00) [7]

Удалить совем в рантайме не получится..
НО

У меня тоже был такой случай, проблема разрешилась чисто случайно..
Использовал создание временных таблиц, потом нужно было удалить и создать новую..
Так вот, если ты сделаешь CREATE TABLE с тем же именем таблицы, то старая удалится и создаться новая, прямо в рантайме..

Может поможет..


mOOx_   (2003-10-19 16:42:00) [8]

Ну и чо, закрыл ты наборы данных и что. Я просто dBase and FoxPro не балуюсь. Но почемуто мне думается, что ты еще используешь TDataBase (может его не надо, не знаю). Так вот, если всетаки используешь, то соединение обрывай, а не датасет закрывай.
Успехов.


csr   (2003-10-19 15:21:00) [9]

Неужели никто не знает??!!


csr   (2003-10-17 18:12:00) [10]

Дык я закрывал TDataSet (методом close)! Даже закрывал DataSource - не помогает! Подскажите, КАК закрыть файл, который создался в ран-тайме!


служивый   (2003-10-16 19:43:00) [11]

Нельзя удалить открытый файл. Если открывал ты закрой и потом удаляй
если другая программа, соответственно подожди пока она закроет.


Наверх

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