Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб / 15 сообщений из 15, страница 1 из 1
13.11.2015, 19:37
    #39103229
Martinisiko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Уважаемые дамы и господа, помогите решить проблему:
Файл аксесса растёт ужасными темпами, в саму базу ничего не добавляетсяю Просто пользуюсь формулярами для просмотра информации. В базе содержится много фотографий и пдф документов. Они сохранены в базе, как вложенный элемент (скрепка). По какой то причине напрямую из базы я эти файлы читать не могу, их программа при использовании не находит. Приходится делать вот что:
Код: vbnet
1.
 MyPicture.Picture = CurrentProject.Path & "\pics\" & DLookup("IMGs", "tbl_Files", "[ID] = " & myID)


То есть для каждой картинки или файла пдф я ищу название файла в базе данных(из Поля "Вложение" Access (Attachment)).
Опытным путем было найдено следущее:
каждый раз при присвоении картинке, вышеупомянутым кодом, пути к картинке Аксесс создает файл ПОРЯДКОВЫЙНОМЕР_ИмяФайлаИзБазыДанных и использует его. Размер базы увеличивается на размер этого фото. На прилагаемой фотке это видно.
Вопросы:
1. почему аксесс это делает?
2. Что я делаю не так в конкретном случае? почему вышеупомянутый код не работает как надо? (Он делает то что я от него прошу, но еще зачем то создает каждый раз копию фотографии)
И самое главное:
3.Как удалить теперь все эти копии фотографий? Как можно получить доступ к Папке что содержит Фотографии для кнопки "вставить изображение" - Той кнопки что на моём фото называется "Bild Einfügen". Там накопилось сотни файлов, и удаление их по одной уж очень много времени займет.

Заранее спасибо.
...
Рейтинг: 0 / 0
16.11.2015, 11:52
    #39104256
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Не пользовался вложениями. Но как-то занимался вопросами хранения изображений в базе. Посмотрите вот здесь Хранение изображений в базе данных Может поможет.
...
Рейтинг: 0 / 0
16.11.2015, 12:23
    #39104311
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Martinisiko, может достаточно в настройках Акса установить флажок "Сжимать при закрытии" (или как-то так)?
...
Рейтинг: 0 / 0
16.11.2015, 15:38
    #39104589
Martinisiko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Неужели никто не знает как решить эти проблемы?
...
Рейтинг: 0 / 0
16.11.2015, 15:43
    #39104591
Martinisiko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Спасибо за ответы. Я уже сжимал, не помагает. База становится легче где то на 1-2 МБ, а прирост во время пользования может и до 10-20 Мб доходить. Аксесс создаёт копии файлов (см. фото) и использует их для показа. Каждый раз при нажатии кнопки счётчик перед фото увеличивается, то есть опять создалась еще одна копия, база выросла.
...
Рейтинг: 0 / 0
16.11.2015, 20:13
    #39104966
Адеке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Тогда может лучше держать базу отдельно, приложение отдельно?
...
Рейтинг: 0 / 0
17.11.2015, 05:44
    #39105107
simply
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Вышеприведенный код выполняет загрузку в базу файла изображения из вне, а именно из папки "\pics\", которая находится в той же директории, что и Ваша база, т.е. каждый раз, когда Вы думаете, что вызываете на просмотр изображение из базы Вы подгружаете его в базу, мне так кажется...................... .
...
Рейтинг: 0 / 0
17.11.2015, 11:18
    #39105329
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
simplyВышеприведенный код выполняет загрузку в базу файла изображения из вне, а именно из папки "\pics\", которая находится в той же директории, что и Ваша база, т.е. каждый раз, когда Вы думаете, что вызываете на просмотр изображение из базы Вы подгружаете его в базу, мне так кажется...................... .Вот, вот... а по кусочку вашего кода понять что там происходит на самом деле трудновато.
...
Рейтинг: 0 / 0
19.11.2015, 17:07
    #39108016
Martinisiko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Уважаемые simply и Joss, если указанный мною код загружает файл в базу данных, то это и есть та самая проблема о которой я говорю. Мне казалось что этим кодом я лишь показываю файл лежащий в папке "pics". Как же тогда показывать файл, не загружая его в базу?
И как удалить теперь все эти копии файлов что сидят теперь в базе?
...
Рейтинг: 0 / 0
19.11.2015, 17:28
    #39108046
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Тот кусочек, что Вы привели загружает в элемент Image загружаете рисунок. При этом он преобразовывается в DIB формат. При следующей загрузке старый рисунок убирается и грузится новый. При использовании таким способом, расти база не должна. Но Вы ведь там ещё что-то делаете? Или нет.
И смотрели ту ссылку, что я Вам дал? Там есть примеры для разных методов.
...
Рейтинг: 0 / 0
19.11.2015, 18:04
    #39108099
simply
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Выложите базу в архиве, желательно с папкой, в которой она находиться и её содержимым. Посмотрим, что там за зверь.
...
Рейтинг: 0 / 0
19.11.2015, 19:01
    #39108166
Martinisiko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Уважаемые simply и Joss,
я еще раз просмотрел кучу интернет страниц по теме, везде загружают файл через атрибут ".Picture". То есть здесь не должно быть проблем. После того как я загрузил=показал картинку, ничего больше я не делаю. Пользователь выбирает через комбо-бокс названия авто в базе данных и получает картинку и информацию по ней. Все.

Удалось узнать вот что. Эти копии Аксесс хранит в файле MSysResources. Зайдя в эту таблицу можно быстро удалить все копии. (копии начинаются "xxx_", где xxx порядковый номер). База данных после удаления копий уменьшилась в два разаю Но проблему это не решает. Ведь продолжая пользоваться базой данных, она продолжает расти. То есть ее придётся чистить время от времени.
Может кто знает как запретить Аксесс делать эти копии. После того как в этом разобрался, нашел вот по этой ссылке описание этой проблемы, может там кому понятнее.
https://misterslimm.wordpress.com/2013/08/05/supersize-msaccess-microsoft-access-and-the-unexpected-embedded-image-cache

Автор не пишет как запретить Аксесс делать копии, тоже предлагает чистить таблицу "MSysResources".

Проблема получается не в той строчке кода что я привел, копируются почти все картинки, что есть в формах. Например картинки-кнопки, которые я ставил напрямую через аксесс, без кода VBA.

Может кто сталкивался?
...
Рейтинг: 0 / 0
19.11.2015, 19:18
    #39108187
Martinisiko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Уважаемый Joss, Спасибо за информацию. Я тоже остановился на варианте 5. Именно он и используется в этой программе. Где то именно как вы и описали, а где то и таким вот "странным" образом, как в первом сообщении.
...
Рейтинг: 0 / 0
19.11.2015, 19:22
    #39108196
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
А если UserForm попробовать под эти цели?
...
Рейтинг: 0 / 0
19.11.2015, 20:08
    #39108250
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
Martinisiko,
вот тут уже подобное обсуждалось
http://www.sql.ru/forum/1001973/baza-puhnet-ot-vneshnih-izobrazheniy
и похоже автор нашел решение :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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