|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Уважаемые дамы и господа, помогите решить проблему: Файл аксесса растёт ужасными темпами, в саму базу ничего не добавляетсяю Просто пользуюсь формулярами для просмотра информации. В базе содержится много фотографий и пдф документов. Они сохранены в базе, как вложенный элемент (скрепка). По какой то причине напрямую из базы я эти файлы читать не могу, их программа при использовании не находит. Приходится делать вот что: Код: vbnet 1.
То есть для каждой картинки или файла пдф я ищу название файла в базе данных(из Поля "Вложение" Access (Attachment)). Опытным путем было найдено следущее: каждый раз при присвоении картинке, вышеупомянутым кодом, пути к картинке Аксесс создает файл ПОРЯДКОВЫЙНОМЕР_ИмяФайлаИзБазыДанных и использует его. Размер базы увеличивается на размер этого фото. На прилагаемой фотке это видно. Вопросы: 1. почему аксесс это делает? 2. Что я делаю не так в конкретном случае? почему вышеупомянутый код не работает как надо? (Он делает то что я от него прошу, но еще зачем то создает каждый раз копию фотографии) И самое главное: 3.Как удалить теперь все эти копии фотографий? Как можно получить доступ к Папке что содержит Фотографии для кнопки "вставить изображение" - Той кнопки что на моём фото называется "Bild Einfügen". Там накопилось сотни файлов, и удаление их по одной уж очень много времени займет. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2015, 19:37 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Не пользовался вложениями. Но как-то занимался вопросами хранения изображений в базе. Посмотрите вот здесь Хранение изображений в базе данных Может поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2015, 11:52 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Martinisiko, может достаточно в настройках Акса установить флажок "Сжимать при закрытии" (или как-то так)? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2015, 12:23 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Неужели никто не знает как решить эти проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2015, 15:38 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Спасибо за ответы. Я уже сжимал, не помагает. База становится легче где то на 1-2 МБ, а прирост во время пользования может и до 10-20 Мб доходить. Аксесс создаёт копии файлов (см. фото) и использует их для показа. Каждый раз при нажатии кнопки счётчик перед фото увеличивается, то есть опять создалась еще одна копия, база выросла. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2015, 15:43 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Тогда может лучше держать базу отдельно, приложение отдельно? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2015, 20:13 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Вышеприведенный код выполняет загрузку в базу файла изображения из вне, а именно из папки "\pics\", которая находится в той же директории, что и Ваша база, т.е. каждый раз, когда Вы думаете, что вызываете на просмотр изображение из базы Вы подгружаете его в базу, мне так кажется...................... . ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2015, 05:44 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
simplyВышеприведенный код выполняет загрузку в базу файла изображения из вне, а именно из папки "\pics\", которая находится в той же директории, что и Ваша база, т.е. каждый раз, когда Вы думаете, что вызываете на просмотр изображение из базы Вы подгружаете его в базу, мне так кажется...................... .Вот, вот... а по кусочку вашего кода понять что там происходит на самом деле трудновато. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2015, 11:18 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Уважаемые simply и Joss, если указанный мною код загружает файл в базу данных, то это и есть та самая проблема о которой я говорю. Мне казалось что этим кодом я лишь показываю файл лежащий в папке "pics". Как же тогда показывать файл, не загружая его в базу? И как удалить теперь все эти копии файлов что сидят теперь в базе? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 17:07 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Тот кусочек, что Вы привели загружает в элемент Image загружаете рисунок. При этом он преобразовывается в DIB формат. При следующей загрузке старый рисунок убирается и грузится новый. При использовании таким способом, расти база не должна. Но Вы ведь там ещё что-то делаете? Или нет. И смотрели ту ссылку, что я Вам дал? Там есть примеры для разных методов. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 17:28 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Выложите базу в архиве, желательно с папкой, в которой она находиться и её содержимым. Посмотрим, что там за зверь. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 18:04 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Уважаемые 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. Может кто сталкивался? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 19:01 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Уважаемый Joss, Спасибо за информацию. Я тоже остановился на варианте 5. Именно он и используется в этой программе. Где то именно как вы и описали, а где то и таким вот "странным" образом, как в первом сообщении. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 19:18 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
А если UserForm попробовать под эти цели? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 19:22 |
|
Access 2013, Файл базы данных растет с каждым ее использованием. За неделю + 50мб
|
|||
---|---|---|---|
#18+
Martinisiko, вот тут уже подобное обсуждалось http://www.sql.ru/forum/1001973/baza-puhnet-ot-vneshnih-izobrazheniy и похоже автор нашел решение :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 20:08 |
|
|
start [/forum/topic.php?fid=45&fpage=121&tid=1614266]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 332ms |
total: | 454ms |
0 / 0 |