|
|
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Я еще наеду щаз! Не по поводу свинины, кнешна :) Вы, EDUDK01, обманули нас чтоль? млин.? Вы текущую базу сжимаете? И как? сжимается? млин... "нуфовским"вариантом можно только другую бд сжать... А так как у меня все проекты "деленые", то я об этой фишке запамятовал... А щаз, готовя FAQ напоролся... Нука, EDUDK01, поближе, поближе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 18:42 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Зачем "нуфовским"? Я своим "идиотским" вариантом сжимаю базу. Взяли вот сразу и обвинили во всем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 19:18 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
тогда просветите нас, каким "идиотским" способом вы сжимаете ТЕКУЩУЮ базу? //никаких обвинений... догадки одни :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 19:23 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 19:26 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
И что, на строке objFileSystem.CopyFile myNewDB2, myCurrentDB, True (копирование уже сжатого файла на место ТЕКУЩЕГО) не вываливается ошибка №70 "Permission denied!"? Хм... Хээээээээээээээлп!!!! Теперя у меня не работает!!! Может тоже офис снести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 19:48 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Нет никакой ошибки, все работает как часы, хотя код ИМХО плебейский. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 19:56 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
А вы абсолютно уверены, что мы подразумеваем под "ТЕКУЩАЯ БД" ту БД, из которой выполняется сжатие (в которой работает наша процедура сжатия)? //просто так... лишний раз убедиться в ясной постановке задачи... з.ы. и что есть "плебейский"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2003, 09:03 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Народ! Это и правда интересно. Получается, можно копировать базу из самой себя? И сжимать? ОТКРЫТУЮ?! И ПЕРЕЗАПИСЫВАТЬ на то же место?!! ПРАВДА, ЧТО ЛИ? 8-() Кто еще пробовал, отзовитесь! Нужны мысли по поводу "бэкапа по расписанию", уже думал внешнее приложение писать и по выходе его стартовать... Или винрар... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2003, 09:56 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Получается, можно копировать базу из самой себя? И сжимать? ОТКРЫТУЮ?! И ПЕРЕЗАПИСЫВАТЬ на то же место?!! А хрен ли нам кабанам (Нуф-Нуф привет ) Есть у тебя база db1.mdb Создаешь в нотепаде файл, называешь его db1.mdb и копируешь в то место где база лежит. Очень даже скопируется. Админы в шоке, а ты сидишь и радуешься как хорошо база пожалась ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2003, 10:02 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Нуф-нуфу: Алгоритм действий: Из Файл-1 запускаем процедуру: 1. Копировать Файл-1 в Файл-2 2. Сжимаем Файл-2 в Файл-3 3. Перезаписываем Файл-3 в Файл-1 4. Убиваем Файл-2 и Файл-3 Все работает без ошибок, проверено на Аксес 2000 и Аксес ХР. Насчет кода, я имел ввиду что данный вариант наверное не самое рациональное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2003, 13:10 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Мюнхаузены блин. Сами себя за волосы научились вытаскивать из болота Ну как можно работая в Файл1 копировать поверх Файла1 что-то другое? Ну позволяет это аксес, но это же не повод этим пользоваться. А после копирования захочет какой-либо объект сохраниться - и кирдык, нераспознаваемый формат. Вам оно надо - так сжимать базу, что потом восстанавливать придется? Только что попробовал описанную методику, только не програмно, а ручками. Т.е. открыл базу, скопировал ее в другое место, восстановил/сжал, скопировал обратно (при этом все время исходная база была открыта). Ну и п%здец базе. При закрытии первой же формочки пошли по кругу два сообщения - "Ошибка при операции сохранения" и "Нераспознаваемый формат". Пришлось таскманагером срубать. Восстановить не получилось. Так что этот вариант не только не рациональный. Это - преступный вариант В фак его включать нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2003, 13:33 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
> В фак его включать нельзя В фак его включать надо, но только под лозунгом: если вам кто-то будет предлагать, не ешьте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2003, 13:38 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Не пропал я (привет Лоху), а гулял у подножия маленький такой гора Машук (еще раз привет Лоху:) и не съеден еще (привет Санычу), и вообще, у меня отпуск (привет ВСЕМ :) гы-гы... //работайте-работайте, типа... Но буду съеден, ежли потекший кран дома у лубимой дэвушки не починю, а это вам не базу, знаете ли, восстановить :) По существу: 1. для EDUDK01: Знаешь, скорее всего это опять какой-то глюк. Правда, не берусь судить на моей ли машине или на вашей, ибо это без разници - ежли есть глюк (код ведет себя по разному от случая к случаю), то это код стоит упомянуть (см.ниже), но не стоит рекомендовать к повторению. //лично у меня при попытке перезаписать уже сжатый файл на место открытого выдается "Пермишен денаед" (шо-то типа "Разрешение на операцию не получено"). Видимо это пральна, ибо в справке черным по белому написано: "Copies and compacts a closed database , and gives you the..." и все в этом духе. Поэтому в таком виде, во всяком случае в FAQ это не пойдет (см, опять же, ниже). 2. Появилась новая идея добавить в "FAQ: Сжатие БД" раздел "Что еще можно сделать и почему так делать не надо?" , в котором и будут отражены варианты сжатия через "программный клик", "мюнхаузенское сжатие самого себя" и могет быть еще че-нить... 3. Клятвенно клянусь сени-завтра выложить предокончательную версию FAQ на всеобщую оценку, правку (наведение красоты) и т.п. Надеюсь (очень), что он будет окончательным вариантом... //уехал кран чинить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2003, 14:47 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Нуфу: ОК, глюк так глюк. Но мне то от этого не легче, базу однако сжимать надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2003, 15:13 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Вот я тут прочел все ваши сообщения и решил поделиться своим методом. Я понимаю, что этот метод - кульбиты пьяного дедушки, но раз нельзя выполнять _сжатие_ и _архивирование_ открытой базы и тем более ТЕКУЩЕЙ базы, то, возможно, это единственный метод. Итак, механизм: 1. из ТЕКУЩЕЙ базы (которую очень хочется и сжать и архивировать) вызывается модуль, который в текущ. (где база лежит) каталоге создает WSH скрипт, запускает его и закрывает базу. 2. запущенный скрипт дожидается, пока Акс закроет базу, и запускает ее сжатие: "msaccess <база>.mdb /compact". 3. потом делается архивация (тоже банальное копирование файлов с помощью объектов WSH) 4. и если все это прошло успешно, снова открывает базу в пользовательском режиме. Конечно этот механизм имеет много НО, однако с грехом поплам оно работает. 8-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 16:59 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
чё-то я не понял зачем и чё сжимают... база - это акес в неразделенном виде? в однопользовательном режиме? или это клиентская часть? саму себя сжимать-то зачем? трудно на панель вынести снопку сжать и востановить? для каких целей сжатие? для резервного копирования? дак это в друго топике.. или я чё-то недогоняю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 18:58 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Moose, привет! Что-то подобное мы уже реализовали средствами самого Аксесса, но, имхо, возможностей там побольше можно прикрутить. Смотри FAQ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 19:56 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32189689&tid=1680174]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 351ms |

| 0 / 0 |
