powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сжатие базы, помогите!!!
25 сообщений из 42, страница 1 из 2
Сжатие базы, помогите!!!
    #32182146
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Помогите пожалуйста разобратся с сжатием базы. Нарыл в Help что вроде бы надо использовать функцию CompactDatabase, но она работает при условии что сжимаемая база закрыта. А как же я могу запустить функцию если сама база закрыта?
Есть ли какой выход? Никак не могу эту проблему решить, помогите!!!!!!!!!!!
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32182194
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Должно быть две базы: в одной находимся, другую сжимаем. Кстати, если система разделена на программу и данные, то так и получается: находимся в базе с программой, сжимаем базу с данными.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32182206
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри \r
При удаление размер файла не уменьшается. Там несколько реализаций прдложено
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32187798
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне больше понравился Нуф-нуфовский вариант, но он у меня почему то не работает. С чего бы это?
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32187823
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хде мой шаманский бубен? :)

Ну так откомпилируй, прогони в пошаговом режиме и подай сюда строчку и сообщение об ошибке :)
//сможет ответить тока завтра... Хотя и без меня разберутся
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32187931
iska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В ветке, ссылку на которую дал Нуф-Нуф, Lescha_A запостил функцию Autocompact().
Сам пользуюсь именно ею [где взял не помню:-(].
Имхо, до сих пор это идеальное решение для неразделенной бд. Это фактически вызов встроенного метода Compact and Repair Database из меню Tools.
>EDUDK01 при условии что сжимаемая база закрыта"
>Владимир Саныч Должно быть две базы: в одной находимся, другую сжимаем.
Нет. БД не должна быть обязательно закрыта при использовании вышеуказанной функции.
1. Т.е. реально повесить эту функция на кнопку "Выход" (скажем, в главной кнопочной форме) или на закрытие главной кнопочной формы и т.д.
2. Сжатие может не произойти, если в момент вызова функции будут открыты те или иные объекты текущей бд (таблицы, рекордсеты, связанные формы и т.п.).
3. Т.к. скорее всего это будет делаться на выходе, то в конце просто добавить Application.Quit.
4. Если п.3 не используется и возникает ситуация в п.2, то вы получите безымянную менюшку с безымянной кнопкой на панели инструментов.

Обработку вышеописанных ситуаций и график обслуживания добавляем по вкусу.

Не проверял, но если неразделенная база - многопользовательская, наверное, придется добавить проверку подключения других пользователей, хотя, по-моему, даже при отстутствии монопольного доступа вызов этой функции ошибки не сгенерирует.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189166
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуф-Нуфу: прогоняю в пошаговом режиме, никаких ошибок не выдает, но база при этом не сжимается. Пробовал совсем уж идиотский вариант, копирую текущий файл- 1 в файл-2. Затем сжимаю файл-2 в файл-3. Перезаписываю файл-3 в файл-1 и убиваю файл-2 и файл-3. Никакого результата.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189188
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно... У меня этот код уже года 2 работает... А может скинуть ВСЮ функцию/процедуру сюда?
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189195
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле:
А можеШ скинуть?
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189248
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это вот мои художества:

Dim objFileSystem As Object
Dim myCurrentDB As String
Dim myNewDB1 As String
Dim myNewDB2 As String

myCurrentDB = "C:\WINNT\Profiles\edudk01\Desktop\db1.mdb"
myNewDB1 = "C:\WINNT\Profiles\edudk01\Desktop\db2.mdb"
myNewDB2 = "C:\WINNT\Profiles\edudk01\Desktop\db3.mdb"

Set objFileSystem = CreateObject("Scripting.FileSystemObject")

objFileSystem.CopyFile myCurrentDB, myNewDB1, True

DBEngine.CompactDatabase myNewDB1, myNewDB2, dbLangCyrillic

objFileSystem.CopyFile myNewDB2, myCurrentDB, True

Kill myNewDB1
Kill myNewDB2

Set objFileSystem = Nothing

А предидущий "нуфовский" код я просто вставлял целиком из примера в модуль и вызывал процедуру из формы. Может там процедуру обработки ошибок как-нибудь специально описать надо?
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189304
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм... Вроде все пральна и логично... В обработчике ошибок пока добавлять ниче не надо (коль скоро у Вас ошибок и не возникает).
Што я могу предположить?
1. Могет быть что NT по-своему как-то понимает "копировать файл"?
2. А могет быть что Акс под NT по-своему как-то понимает "Сжать/восстановить"?
3. А могет быть Вы сами как-то по своему понимаете (оцениваете) сжатие БД? Не подумайте, что я стебаюсь или вообще пытаюсь как-нить ущемить чье-либо достоинство, но... Вы точно уверены, что БД не была сжата одним из тестовых запусков, а теперь уже ей и сжиматься то некуда? Если вы уверены, то извиняюсь 100 разов, а ежли нет, то попробуйте добавить в БД много-пре-много записей (запросом, конешна:), а затем грохните их, после чего замерьте массу/объем, после чего запустите процедуру, и еще один замер... И вообще, как вы оцениваете "сжалась" она или не "сжалась"?
//ниче на ум не приходит... вроде выполняется без ошибок, а не выполняется совсем... хм...
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189359
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвечаю по порядку:

1. Не думаю, файлы копируются без проблем.
2. Тоже не то, если я допустим просто командно сжимаю из данной базы какую либо другую то все работает (из Файл-1 сжимаем Файл-2 в Файл-3).
3. Добавляю 100 новых записей, смотрю размер базы (200 кб). Удаляю все 100 записей, смотрю размер базы (200 кб).
А. Сжимаю базу из "вручную" из меню, смотрю размер базы (148 кб).
Б. Сжимаю базу програмно, смотрю размер базы (200 кб).

Я в чем то неправ?
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189366
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А нет ли в этой программе On Error Resume Next?
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189376
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Санычу- в приведенном мной примере процедуры обработки ошибок нет совсем. В "нуфовском" примере он есть.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189390
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> в приведенном мной примере процедуры обработки ошибок нет совсем.

А в вызывающей процедуре?
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189392
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже нет
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189396
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Интересно посмотреть на файлы и их размеры после каждого шага. Особенно после DBEngine.CompactDatabase.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189397
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В "нуфовском" примере его тоже нет! То есть он есть, но он отсылает к обработчику, а не Resume Next!... Хм... все ж таки... Хрень какая-та! Ошибок нет, действий нет... Мыслей нет... Ничего нет!
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189430
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переустановили мы Аксес (таже версия, другой диск), все заработало.
Однако... Всем ОГРОООООМНОЕ спасибо!
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189436
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Э-э-э-э-э! вах... А я уж было чуть... Саныч, спасибо за поддержку... //пошел лобать понятную версию "нуф-нуфовского" кода
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189456
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Саныч протягивает руку из Израиля и пожимает Нуфу пятачок. Зрелище, кто бы видел...
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189464
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу Особенно с учетом того, что пятак у Нуфа сопливый (еще:) Гы...
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189467
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Это менее важно. Важнее, что у Израиля отношения со свининой особенные.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189513
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А он кошерная свинья :) (это только шутка, миллион раз извините если что)
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189524
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да чего извиняться, я-то согласен. :^) Пусть Нуф подтвердит, что извиняться не надо.
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сжатие базы, помогите!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]