|
![]() |
#1 |
Участник
|
Цитата:
Это доступ, если использовать файловое хранилище то каждый пользователь получает доступ
Цитата:
Это бекапирование. Куда проще хранить бекап одного файла чем все эти папки и файлы.
Цитата:
Можно контролировать кто открыл файл и держит - стандартный функционал.
Цитата:
Так же если документов уж очень много. то возникают баги, тормоза
Цитата:
Все знаем SysDataBaseLog, которая ну очень большая
Ну уж если нужно хранить любой чих в течение ста лет, то можно посмотреть на секционирование таблиц, предлагаемое MS SQL. Правда, если при настроенном секционировании изменить именно SysDataBaseLog, то при синхронизации таблиц, скорее всего, Акса убьет это секционирование и его нужно будет настраивать заново. Но как часто изменяется структура SysDataBaseLog? |
|
|
За это сообщение автора поблагодарили: Kainix (2). |
![]() |
#2 |
Участник
|
Ну, а если очень хочется работать именно из Аксапты со сторонней базой, то можно использовать одну из особенностей работы Аксы со своей базой. На данном форуме уже не раз приводился способ работы из Аксы не со своими таблицами, а с вьхами, которые Акса считает своими таблицами. Поищите на форуме соответствующие темы. Основной принцип:
|
|
|
За это сообщение автора поблагодарили: d_alexe (1), arhat (1). |
![]() |
#3 |
Участник
|
Спасибо за конструктивную критику, не знал про возможности решения моей проблемы, другими способами, всегда приятно иметь альтернативы. И возможность работать с аксой напрямую с другими базами тоже нужна. Поговорю с админами на счет настройки прав и вынос таблицы в отдельную файловую группу.
|
|
![]() |
#4 |
Модератор
|
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#5 |
Участник
|
Обертка для работы со сторонней бд (с поддержкой контенеров)
SharedProject_IAU_SQL (1).xpo - проект IAU.rar - dll Можно без dll, тогда не перехватить сообщения от sql. чтобы все работало зайти в места поменять одноименные методы, класса метод nmExecuteNonQuery - sqlCommandForEx.ExecuteNonQuery(); на sqlCommand.ExecuteNonQuery(); Описание краткое n - net p - property s - set g - get m - method nps - net property Set npg - net property Get nm - net method Вопрос еще такой, как лучше делать обертках, наследовать классы или без наследования. Если наследовать тогда можно избежать методов которые работают с net классами, но тогда нужно следить за инициализацией всех объектов. Если не наследовать то есть методы которые принимают и возвращают net классы. Последний раз редактировалось Kainix; 17.06.2013 в 10:28. |
|
|
За это сообщение автора поблагодарили: raz (5). |
![]() |
#6 |
Участник
|
пример использования. Выбор и запись в таблицу, состоящую из 2х полей RefRecId int64(bigint) и BinData container(image).
Для доступа к конкретным полям нужна обертка для System.Data.DataSet X++: static void IAU_Connection(Args _args) { SysSqlConnection sysSqlConnection; SysSqlCommand SysSqlCommand; SysSqlConnectionStringBuilder sysSqlStringBuilder; SysSqlConnectionTable sysSqlConnectionTable; SysDataRowCollection sysDataRowCollection; SysDataRow sysDataRow; SysSqlDataReader sysSqlExecuteReader; System.Exception e; ; try { sysSqlStringBuilder = new SysSqlConnectionStringBuilder(); sysSqlStringBuilder.npsServer(''); sysSqlStringBuilder.npsDataBase(''); sysSqlStringBuilder.npsUserName(''); sysSqlStringBuilder.npsUserPassword(''); sysSqlConnection = new SysSqlConnection(sysSqlStringBuilder.npgConnectionString()); SysSqlCommand = sysSqlConnection.sysSqlCommand(); SysSqlCommand.npsCommandText("SELECT * from Table where RefrecId = @RefRecId"); SysSqlCommand.sysSqlParameterCollection().addSysSqlParameter("@RefRecId", 5637374403); sysSqlExecuteReader = SysSqlCommand.sysSqlExecuteReader(); sysSqlExecuteReader.nmRead(); if(sysSqlExecuteReader.npgHasRows()) { sysSqlExecuteReader.nmClose(); SysSqlCommand = sysSqlConnection.sysSqlCommand(); SysSqlCommand.npsCommandText("Update Table set binData = @BinData where RefrecId = @RefRecId"); SysSqlCommand.sysSqlParameterCollection().addSysSqlParameter("@RefRecId", 5637374403); SysSqlCommand.sysSqlParameterCollection().addSysSqlParameter("@BinData", connull()); SysSqlCommand.nmExecuteNonQuery(); } } catch(Exception::CLRError) { e = CLRInterop::getLastException(); if(e) { while(e) { info(e.get_Message()); e = e.get_InnerException(); } } e = SysSqlCommand.clrSqlExeption(); if(e) { while(e) { info(e.get_Message()); e = e.get_InnerException(); } } else { e = SysSqlCommand.clrExeption(); if(e) { while(e) { info(e.get_Message()); e = e.get_InnerException(); } } } } } Последний раз редактировалось Kainix; 17.06.2013 в 10:40. |
|
Теги |
ado, внешняя база |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|