|
|
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Всем привет! Помогите пожалуйста разобратся с сжатием базы. Нарыл в Help что вроде бы надо использовать функцию CompactDatabase, но она работает при условии что сжимаемая база закрыта. А как же я могу запустить функцию если сама база закрыта? Есть ли какой выход? Никак не могу эту проблему решить, помогите!!!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2003, 01:30 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Должно быть две базы: в одной находимся, другую сжимаем. Кстати, если система разделена на программу и данные, то так и получается: находимся в базе с программой, сжимаем базу с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2003, 11:10 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Посмотри \r При удаление размер файла не уменьшается. Там несколько реализаций прдложено ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2003, 11:43 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Мне больше понравился Нуф-нуфовский вариант, но он у меня почему то не работает. С чего бы это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2003, 19:47 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
хде мой шаманский бубен? :) Ну так откомпилируй, прогони в пошаговом режиме и подай сюда строчку и сообщение об ошибке :) //сможет ответить тока завтра... Хотя и без меня разберутся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2003, 20:34 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
В ветке, ссылку на которую дал Нуф-Нуф, Lescha_A запостил функцию Autocompact(). Сам пользуюсь именно ею [где взял не помню:-(]. Имхо, до сих пор это идеальное решение для неразделенной бд. Это фактически вызов встроенного метода Compact and Repair Database из меню Tools. >EDUDK01 при условии что сжимаемая база закрыта" >Владимир Саныч Должно быть две базы: в одной находимся, другую сжимаем. Нет. БД не должна быть обязательно закрыта при использовании вышеуказанной функции. 1. Т.е. реально повесить эту функция на кнопку "Выход" (скажем, в главной кнопочной форме) или на закрытие главной кнопочной формы и т.д. 2. Сжатие может не произойти, если в момент вызова функции будут открыты те или иные объекты текущей бд (таблицы, рекордсеты, связанные формы и т.п.). 3. Т.к. скорее всего это будет делаться на выходе, то в конце просто добавить Application.Quit. 4. Если п.3 не используется и возникает ситуация в п.2, то вы получите безымянную менюшку с безымянной кнопкой на панели инструментов. Обработку вышеописанных ситуаций и график обслуживания добавляем по вкусу. Не проверял, но если неразделенная база - многопользовательская, наверное, придется добавить проверку подключения других пользователей, хотя, по-моему, даже при отстутствии монопольного доступа вызов этой функции ошибки не сгенерирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2003, 06:52 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Нуф-Нуфу: прогоняю в пошаговом режиме, никаких ошибок не выдает, но база при этом не сжимается. Пробовал совсем уж идиотский вариант, копирую текущий файл- 1 в файл-2. Затем сжимаю файл-2 в файл-3. Перезаписываю файл-3 в файл-1 и убиваю файл-2 и файл-3. Никакого результата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 14:19 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Странно... У меня этот код уже года 2 работает... А может скинуть ВСЮ функцию/процедуру сюда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 14:38 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
В смысле: А можеШ скинуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 14:41 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#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, 15:04 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
хм... Вроде все пральна и логично... В обработчике ошибок пока добавлять ниче не надо (коль скоро у Вас ошибок и не возникает). Што я могу предположить? 1. Могет быть что NT по-своему как-то понимает "копировать файл"? 2. А могет быть что Акс под NT по-своему как-то понимает "Сжать/восстановить"? 3. А могет быть Вы сами как-то по своему понимаете (оцениваете) сжатие БД? Не подумайте, что я стебаюсь или вообще пытаюсь как-нить ущемить чье-либо достоинство, но... Вы точно уверены, что БД не была сжата одним из тестовых запусков, а теперь уже ей и сжиматься то некуда? Если вы уверены, то извиняюсь 100 разов, а ежли нет, то попробуйте добавить в БД много-пре-много записей (запросом, конешна:), а затем грохните их, после чего замерьте массу/объем, после чего запустите процедуру, и еще один замер... И вообще, как вы оцениваете "сжалась" она или не "сжалась"? //ниче на ум не приходит... вроде выполняется без ошибок, а не выполняется совсем... хм... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 15:32 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Отвечаю по порядку: 1. Не думаю, файлы копируются без проблем. 2. Тоже не то, если я допустим просто командно сжимаю из данной базы какую либо другую то все работает (из Файл-1 сжимаем Файл-2 в Файл-3). 3. Добавляю 100 новых записей, смотрю размер базы (200 кб). Удаляю все 100 записей, смотрю размер базы (200 кб). А. Сжимаю базу из "вручную" из меню, смотрю размер базы (148 кб). Б. Сжимаю базу програмно, смотрю размер базы (200 кб). Я в чем то неправ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:01 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
А нет ли в этой программе On Error Resume Next? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:05 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Санычу- в приведенном мной примере процедуры обработки ошибок нет совсем. В "нуфовском" примере он есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:11 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
> в приведенном мной примере процедуры обработки ошибок нет совсем. А в вызывающей процедуре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:18 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Интересно посмотреть на файлы и их размеры после каждого шага. Особенно после DBEngine.CompactDatabase. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:21 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
В "нуфовском" примере его тоже нет! То есть он есть, но он отсылает к обработчику, а не Resume Next!... Хм... все ж таки... Хрень какая-та! Ошибок нет, действий нет... Мыслей нет... Ничего нет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:21 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Переустановили мы Аксес (таже версия, другой диск), все заработало. Однако... Всем ОГРОООООМНОЕ спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:39 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Э-э-э-э-э! вах... А я уж было чуть... Саныч, спасибо за поддержку... //пошел лобать понятную версию "нуф-нуфовского" кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:42 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Саныч протягивает руку из Израиля и пожимает Нуфу пятачок. Зрелище, кто бы видел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:54 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Угу Особенно с учетом того, что пятак у Нуфа сопливый (еще:) Гы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:57 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
Это менее важно. Важнее, что у Израиля отношения со свининой особенные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 16:58 |
|
||
|
Сжатие базы, помогите!!!
|
|||
|---|---|---|---|
|
#18+
А он кошерная свинья :) (это только шутка, миллион раз извините если что) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 17:24 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32189304&tid=1680174]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
64ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 367ms |

| 0 / 0 |
