|
![]() |
#1 |
MCT
|
Не прочувствовал, зачем файлы хранить именно в базе? То есть почему просто не использовать допустим файловое хранилице? И почему файлы (правда вы не написали, что за файлы) допустим не хранить в ресурсах системы?
__________________
Axapta book for developer |
|
![]() |
#2 |
Участник
|
Как же не написал DocuValue, стандартный функционал выносим в базу.
Получаемые плюсы, 1. Это доступ, если использовать файловое хранилище то каждый пользователь получает доступ. Например если хранятся изображения, то стандартным просмоторщиком можно их смотреть. Открыл изображение и крути себе скрол))). 2. Это бекапирование. Куда проще хранить бекап одного файла чем все эти папки и файлы. 3. Можно контролировать кто открыл файл и держит - стандартный функционал. 4. Так же если документов уж очень много. то возникают баги, тормоза при обслуживании всего этого хозяйства. Найти документ вручную, удалить подменить (хотя спорный момент) Еще возможное использование. Все знаем SysDataBaseLog, которая ну очень большая, и приходится все время что то с ней делать. А тут можно преспокойно вынести в отдельную базу, и не таскать везде ссобой. Самое главное что не теряем контейнеры, которые хранятся в этих 2х таблицах. Ну и наверно еще извращенный мозг сможет придумать применение, при детальном подходе. Последний раз редактировалось Kainix; 14.06.2013 в 07:10. |
|
![]() |
#3 |
Участник
|
Не написал как доставать контейнер.
К сожалению не получилось средствами аксапты, не поддерживает синтаксис. Пришлось писать стороннюю функцию X++: public static string getStrFromImg(Object _img) { byte[] image = (byte[])_img; return Convert.ToBase64String(image); } X++: protected container getContainer(int _colNum) { str string = IAU.Functions::getStrFromImg(dataReader.GetValue(_colNum)); ; return ContainerClass::blob2Container(binData::loadFromBase64(string)); } |
|
![]() |
#4 |
Участник
|
Нашел метод считывания контейнеров без библиотеки.
X++: protected container getContainer1(int _colNum) { str string ; ; string = CLRInterop::staticInvoke("System.Convert", "ToBase64String", dataReader.GetValue(_colNum)); return ContainerClass::blob2Container(binData::loadFromBase64(string)); } |
|
|
За это сообщение автора поблагодарили: someOne (3). |
![]() |
#5 |
Роман Долгополов (RDOL)
|
Цитата:
что мешает вынести таблицы документооборота и SysDataBaseLog в отдельные файловые группы? бекапить/ресторить сможете отдельно, сможете засунуть на другие (более медленные/дешевые/просто другие) диски. делается пяткой левой ноги за 15 минут любым администратором бд без каких либо изменений в DAX |
|
Теги |
ado, внешняя база |
|
|