Удаление удаленных записей
От: Lenikur Россия  
Дата: 19.10.01 09:49
Оценка:
Привет!
Извините за тавтологию, у меня такой вопрос:
У mdb-шной базы есть связанная внешняя таблица. Работаю я с базой через ADO, вставляю, удаляю записи в связанную таблицу, все нормально. Но вот, я решил скопировать связанную (dbf) таблицу на дискету и тут выяснилось, что размер файла таблицы — 12 MB! Я посмотрел таблицу DBFView-ером, оказалось, что там полно удаленных записей, отмеченных как удаленные, но не удаленных. Подскажите пожалуйста, как удалить удаленные записи?
Re: Удаление удаленных записей
От: gres  
Дата: 19.10.01 12:08
Оценка:
Здравствуйте Lenikur, Вы писали:
Кажется, можно попробывать сжать mdb базу.
L>Привет!
L>Извините за тавтологию, у меня такой вопрос:
L>У mdb-шной базы есть связанная внешняя таблица. Работаю я с базой через ADO, вставляю, удаляю записи в связанную таблицу, все нормально. Но вот, я решил скопировать связанную (dbf) таблицу на дискету и тут выяснилось, что размер файла таблицы — 12 MB! Я посмотрел таблицу DBFView-ером, оказалось, что там полно удаленных записей, отмеченных как удаленные, но не удаленных. Подскажите пожалуйста, как удалить удаленные записи?
Re[2]: Удаление удаленных записей
От: Lenikur Россия  
Дата: 24.10.01 08:56
Оценка:
Здравствуйте gres, Вы писали:

G>Кажется, можно попробывать сжать mdb базу.


Спасибо за помощь, но к сожалению, не помогает. :((
Re[3]: Удаление удаленных записей
От: Spini  
Дата: 25.10.01 17:36
Оценка:
Здравствуйте gres, Вы писали:

G>>Кажется, можно попробывать сжать mdb базу.

L>Спасибо за помощь, но к сожалению, не помогает. :((

Не, я сам конечно не местный, и вообще-то проездом, и может быть просто не в курсе сути разговора, но скажите мне пожалуйста, уважаемый gres: "Если у человека внешняя таблица с маркированными на удаление кортежами, то на кой ему сжимать mdb базу?" Т.е. каким боком ее сжатие повлияет на записи во внешней таблице, собстно? Если уж такая необходимость использовать Access, то на мой очень недалекий взгляд надо импортировать dbf файл в Access, сжать базу, а затем снова экспортировать эту самую внешнюю таблицу..... Вот ведь бред какой.... Хотя собственно Access при импорте вряд ли оценит удаленные записи и операция сжатия будет не нужна, но это ИМХО — пробовать лень :o) А сегодня особенно... Хотя юзать Access т.о. как-то мнэ-э-э странно будет, однако... :o)
Re[4]: Удаление удаленных записей
От: Lenikur Россия  
Дата: 26.10.01 04:35
Оценка:
Спасибо, Spini, за разъяснение (повторение — мать заикания :)).
Чтобы Вы могли предложить кроме импортирования? Если Вам интересно, для чего можно использовать так Access, то можете обратиться к ветке этого форума "Вопрос по БД". Я выбрал вариант со связыванием... теперь расхлебываю :(
Re[5]: Удаление удаленных записей
От: Lenikur Россия  
Дата: 26.10.01 04:39
Оценка:
Здравствуйте Lenikur, Вы писали:

Сам с собой поздоровался :))
В догонку к предыдущему: Не "Вопрос по БД", а "Подскажите решение".
Re[6]: Удаление удаленных записей
От: Spini  
Дата: 26.10.01 06:41
Оценка:
Здравствуйте Lenikur, Вы писали:

L>Сам с собой поздоровался :))

L>В догонку к предыдущему: Не "Вопрос по БД", а "Подскажите решение".

А чем не улыбается импорт<->экспорт? Ну изврат, зато весело :o) Даже попробовал сейчас — забавно все это, и базу сжимать не надо: импорт удаленных записей не производится. Или хочется все програмно делать? Я конечно специалист по ADO тот еще, но помоему dbf файл средствами JRO сжать не получится, а все что есть в OLE DB это IJetCompact, что тоже не катит... А вообще, думаю есть утилитки, которые можно поискать для сжатия dbf, или в конце концов написать свою. Если структура отношения постоянна, то тут вообще делать нефига, dbf — простой файл произвольного доступа, маркировка удаленных записей производится '*' Дык.... почему их не убрать?
Re[6]: Удаление удаленных записей
От: Willi  
Дата: 26.10.01 06:50
Оценка:
Здравствуйте Lenikur, Вы писали:

L>Здравствуйте Lenikur, Вы писали:


L>Сам с собой поздоровался :))

L>В догонку к предыдущему: Не "Вопрос по БД", а "Подскажите решение".

Когда-то, еще под старым добрым DOS, мне приходилось
достаточно плотно работать с FoxPro :)
У них там для таких целей была команда PACK.
Т.е. в принципе, запустив FoxPro, сжать ты ее можешь,
но вот как сделать это через ADO не знаю :(
\/\/i||i
Re[7]: Удаление удаленных записей
От: Lenikur Россия  
Дата: 26.10.01 07:02
Оценка:
Здравствуйте Spini, Вы писали:

>>Если структура отношения постоянна, то тут вообще делать нефига.

Что такое — структура отношения?

>>, dbf — простой файл произвольного доступа, маркировка удаленных записей производится '*' >>Дык.... почему их не убрать?


А у Вас есть структура DBF файла? Если есть, то буду очень признателен. -> lenukur@bayard.ru
Re[8]: Удаление удаленных записей
От: Spini  
Дата: 27.10.01 08:06
Оценка:
Здравствуйте Lenikur, Вы писали:

>>>Если структура отношения постоянна, то тут вообще делать нефига.

L>Что такое — структура отношения?

Мну... отношение эт таже таблица. Я имел в виду следующее: если структура внешней таблицы постоянна, а dbf — это файл произвольного доступа, то сразу же можно с точностью до бита определить расположение записей, т.е. для подобной утилитки нет необходимости считывать заголовок dbf файла и определять длину записи динамически, или ориентироватся на "терминальный байт" — определение конца записи (за термин не ручаюсь, т.к. dbf не занимался) да и вообще все намного упрощается.

>>>, dbf — простой файл произвольного доступа, маркировка удаленных записей производится '*' >>Дык.... почему их не убрать?

L>А у Вас есть структура DBF файла? Если есть, то буду очень признателен. -> lenukur@bayard.ru

Описание структуры я конечно сбросил на мыло, но надо иметь в виду, что структура эта самая может менятся в зависимост от версий dbf: dBase III-V, FoxPro и т.д. Лучше самому взглянуть на файл "как он есть"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.