Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сжатие базы, помогите!!! / 25 сообщений из 42, страница 1 из 2
13.06.2003, 01:30
    #32182146
EDUDK01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы, помогите!!!
Всем привет!
Помогите пожалуйста разобратся с сжатием базы. Нарыл в Help что вроде бы надо использовать функцию CompactDatabase, но она работает при условии что сжимаемая база закрыта. А как же я могу запустить функцию если сама база закрыта?
Есть ли какой выход? Никак не могу эту проблему решить, помогите!!!!!!!!!!!
...
Рейтинг: 0 / 0
13.06.2003, 11:10
    #32182194
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы, помогите!!!
Должно быть две базы: в одной находимся, другую сжимаем. Кстати, если система разделена на программу и данные, то так и получается: находимся в базе с программой, сжимаем базу с данными.
...
Рейтинг: 0 / 0
13.06.2003, 11:43
    #32182206
Нуф-нуф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы, помогите!!!
Посмотри \r
При удаление размер файла не уменьшается. Там несколько реализаций прдложено
...
Рейтинг: 0 / 0
20.06.2003, 19:47
    #32187798
EDUDK01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы, помогите!!!
Мне больше понравился Нуф-нуфовский вариант, но он у меня почему то не работает. С чего бы это?
...
Рейтинг: 0 / 0
20.06.2003, 20:34
    #32187823
Нуф-нуф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы, помогите!!!
хде мой шаманский бубен? :)

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

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

Не проверял, но если неразделенная база - многопользовательская, наверное, придется добавить проверку подключения других пользователей, хотя, по-моему, даже при отстутствии монопольного доступа вызов этой функции ошибки не сгенерирует.
...
Рейтинг: 0 / 0
23.06.2003, 14:19
    #32189166
EDUDK01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы, помогите!!!
Нуф-Нуфу: прогоняю в пошаговом режиме, никаких ошибок не выдает, но база при этом не сжимается. Пробовал совсем уж идиотский вариант, копирую текущий файл- 1 в файл-2. Затем сжимаю файл-2 в файл-3. Перезаписываю файл-3 в файл-1 и убиваю файл-2 и файл-3. Никакого результата.
...
Рейтинг: 0 / 0
23.06.2003, 14:38
    #32189188
Нуф-нуф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы, помогите!!!
Странно... У меня этот код уже года 2 работает... А может скинуть ВСЮ функцию/процедуру сюда?
...
Рейтинг: 0 / 0
23.06.2003, 14:41
    #32189195
Нуф-нуф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы, помогите!!!
В смысле:
А можеШ скинуть?
...
Рейтинг: 0 / 0
23.06.2003, 15:04
    #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
23.06.2003, 15:32
    #32189304
Нуф-нуф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы, помогите!!!
хм... Вроде все пральна и логично... В обработчике ошибок пока добавлять ниче не надо (коль скоро у Вас ошибок и не возникает).
Што я могу предположить?
1. Могет быть что NT по-своему как-то понимает "копировать файл"?
2. А могет быть что Акс под NT по-своему как-то понимает "Сжать/восстановить"?
3. А могет быть Вы сами как-то по своему понимаете (оцениваете) сжатие БД? Не подумайте, что я стебаюсь или вообще пытаюсь как-нить ущемить чье-либо достоинство, но... Вы точно уверены, что БД не была сжата одним из тестовых запусков, а теперь уже ей и сжиматься то некуда? Если вы уверены, то извиняюсь 100 разов, а ежли нет, то попробуйте добавить в БД много-пре-много записей (запросом, конешна:), а затем грохните их, после чего замерьте массу/объем, после чего запустите процедуру, и еще один замер... И вообще, как вы оцениваете "сжалась" она или не "сжалась"?
//ниче на ум не приходит... вроде выполняется без ошибок, а не выполняется совсем... хм...
...
Рейтинг: 0 / 0
23.06.2003, 16:01
    #32189359
EDUDK01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы, помогите!!!
Отвечаю по порядку:

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

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

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


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