powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сжатие базы, помогите!!!
17 сообщений из 42, страница 2 из 2
Сжатие базы, помогите!!!
    #32189651
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я еще наеду щаз! Не по поводу свинины, кнешна :)
Вы, EDUDK01, обманули нас чтоль? млин.? Вы текущую базу сжимаете? И как? сжимается? млин... "нуфовским"вариантом можно только другую бд сжать... А так как у меня все проекты "деленые", то я об этой фишке запамятовал... А щаз, готовя FAQ напоролся... Нука, EDUDK01, поближе, поближе...
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189689
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем "нуфовским"? Я своим "идиотским" вариантом сжимаю базу. Взяли вот сразу и обвинили во всем...
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189693
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда просветите нас, каким "идиотским" способом вы сжимаете ТЕКУЩУЮ базу?
//никаких обвинений... догадки одни :)
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189696
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
Сжатие базы, помогите!!!
    #32189707
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что, на строке objFileSystem.CopyFile myNewDB2, myCurrentDB, True (копирование уже сжатого файла на место ТЕКУЩЕГО) не вываливается ошибка №70 "Permission denied!"?
Хм... Хээээээээээээээлп!!!! Теперя у меня не работает!!! Может тоже офис снести?
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189714
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет никакой ошибки, все работает как часы, хотя код ИМХО плебейский.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189859
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы абсолютно уверены, что мы подразумеваем под "ТЕКУЩАЯ БД" ту БД, из которой выполняется сжатие (в которой работает наша процедура сжатия)?
//просто так... лишний раз убедиться в ясной постановке задачи...

з.ы. и что есть "плебейский"?
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189918
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ!
Это и правда интересно.
Получается, можно копировать базу из самой себя?
И сжимать? ОТКРЫТУЮ?!
И ПЕРЕЗАПИСЫВАТЬ на то же место?!!

ПРАВДА, ЧТО ЛИ? 8-()
Кто еще пробовал, отзовитесь!
Нужны мысли по поводу "бэкапа по расписанию", уже думал внешнее приложение писать и по выходе его стартовать...
Или винрар...
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32189921
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получается, можно копировать базу из самой себя?
И сжимать? ОТКРЫТУЮ?!
И ПЕРЕЗАПИСЫВАТЬ на то же место?!!

А хрен ли нам кабанам (Нуф-Нуф привет )
Есть у тебя база db1.mdb
Создаешь в нотепаде файл, называешь его db1.mdb и копируешь в то место где база лежит. Очень даже скопируется. Админы в шоке, а ты сидишь и радуешься как хорошо база пожалась
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32190199
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуф-нуфу:

Алгоритм действий:

Из Файл-1 запускаем процедуру:
1. Копировать Файл-1 в Файл-2
2. Сжимаем Файл-2 в Файл-3
3. Перезаписываем Файл-3 в Файл-1
4. Убиваем Файл-2 и Файл-3

Все работает без ошибок, проверено на Аксес 2000 и Аксес ХР.
Насчет кода, я имел ввиду что данный вариант наверное не самое рациональное решение.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32190215
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мюнхаузены блин. Сами себя за волосы научились вытаскивать из болота
Ну как можно работая в Файл1 копировать поверх Файла1 что-то другое? Ну позволяет это аксес, но это же не повод этим пользоваться.
А после копирования захочет какой-либо объект сохраниться - и кирдык, нераспознаваемый формат. Вам оно надо - так сжимать базу, что потом восстанавливать придется?

Только что попробовал описанную методику, только не програмно, а ручками. Т.е. открыл базу, скопировал ее в другое место, восстановил/сжал, скопировал обратно (при этом все время исходная база была открыта). Ну и п%здец базе. При закрытии первой же формочки пошли по кругу два сообщения - "Ошибка при операции сохранения" и "Нераспознаваемый формат". Пришлось таскманагером срубать. Восстановить не получилось.

Так что этот вариант не только не рациональный. Это - преступный вариант
В фак его включать нельзя
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32190226
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> В фак его включать нельзя

В фак его включать надо, но только под лозунгом: если вам кто-то будет предлагать, не ешьте.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32190275
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пропал я (привет Лоху), а гулял у подножия маленький такой гора Машук (еще раз привет Лоху:) и не съеден еще (привет Санычу), и вообще, у меня отпуск (привет ВСЕМ :) гы-гы... //работайте-работайте, типа...
Но буду съеден, ежли потекший кран дома у лубимой дэвушки не починю, а это вам не базу, знаете ли, восстановить :)

По существу:
1. для EDUDK01:
Знаешь, скорее всего это опять какой-то глюк. Правда, не берусь судить на моей ли машине или на вашей, ибо это без разници - ежли есть глюк (код ведет себя по разному от случая к случаю), то это код стоит упомянуть (см.ниже), но не стоит рекомендовать к повторению. //лично у меня при попытке перезаписать уже сжатый файл на место открытого выдается "Пермишен денаед" (шо-то типа "Разрешение на операцию не получено"). Видимо это пральна, ибо в справке черным по белому написано: "Copies and compacts a closed database , and gives you the..." и все в этом духе. Поэтому в таком виде, во всяком случае в FAQ это не пойдет (см, опять же, ниже).

2. Появилась новая идея добавить в "FAQ: Сжатие БД" раздел "Что еще можно сделать и почему так делать не надо?" , в котором и будут отражены варианты сжатия через "программный клик", "мюнхаузенское сжатие самого себя" и могет быть еще че-нить...

3. Клятвенно клянусь сени-завтра выложить предокончательную версию FAQ на всеобщую оценку, правку (наведение красоты) и т.п. Надеюсь (очень), что он будет окончательным вариантом...
//уехал кран чинить :)
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32190307
EDUDK01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуфу:

ОК, глюк так глюк. Но мне то от этого не легче, базу однако сжимать надо.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32224157
Moose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот я тут прочел все ваши сообщения и решил поделиться своим методом.
Я понимаю, что этот метод - кульбиты пьяного дедушки, но раз нельзя выполнять _сжатие_ и _архивирование_ открытой базы и тем более ТЕКУЩЕЙ базы, то, возможно, это единственный метод.

Итак, механизм:
1. из ТЕКУЩЕЙ базы (которую очень хочется и сжать и архивировать) вызывается модуль, который в текущ. (где база лежит) каталоге создает WSH скрипт, запускает его и закрывает базу.
2. запущенный скрипт дожидается, пока Акс закроет базу, и запускает ее сжатие: "msaccess <база>.mdb /compact".
3. потом делается архивация (тоже банальное копирование файлов с помощью объектов WSH)
4. и если все это прошло успешно, снова открывает базу в пользовательском режиме.

Конечно этот механизм имеет много НО, однако с грехом поплам оно работает. 8-)
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32224356
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чё-то я не понял зачем и чё сжимают...

база - это акес в неразделенном виде? в однопользовательном режиме?

или это клиентская часть?

саму себя сжимать-то зачем?

трудно на панель вынести снопку сжать и востановить?

для каких целей сжатие?

для резервного копирования?
дак это в друго топике..

или я чё-то недогоняю.
...
Рейтинг: 0 / 0
Сжатие базы, помогите!!!
    #32224401
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Moose, привет! Что-то подобное мы уже реализовали средствами самого Аксесса, но, имхо, возможностей там побольше можно прикрутить. Смотри FAQ
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сжатие базы, помогите!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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