AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
NAV
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.02.2026, 15:10   #3  
Mifeus is offline
Mifeus
Участник
 
4 / 15 (1) ++
Регистрация: 09.12.2024
После правки серверного режима ошибка с правами ушла, но бэкап почему-то не хотел создаваться (вернее файл создавался, но удалялся и бэкап падал с ошибкой, по логам не смог понять в чем дело). Решил попробовать подключиться через оледб - помогло, бэкап начал создаваться


X++:
static void tryBackUpOLEDB(Args _args)
{
    System.Exception                    e;
    System.Data.OleDb.OleDbConnection   objConn;
    System.Data.OleDb.OleDbCommand      cmdSelect;
    InteropPermission                   perm;
    SysSQLSystemInfo                SQLSystemInfo = SysSQLSystemInfo::construct();
    
    str connectStr = "Provider=MSOLEDBSQL.1;Integrated Security=SSPI;"+
                     strFmt("Persist Security Info=False;Initial Catalog=%1;Data Source= %2 ", SQLSystemInfo.getloginDatabase(), SQLSystemInfo.getLoginServer());
    str exceptionStr;
    
    MenuFunction    mf;
    
    date m_dateBackUp = systemDateGet();

    Filename m_backUpFileName = "E:\\file.bak";

    str _backupName = 'test2';
    
    str strSQL;
    ;
    
    if ( ! isRunningOnServer())
    {
        mf = classFactory::makeObjectOnServer(classNum(MenuFunction));
        mf.objectType(MenuItemObjectType::Job);
        mf.runOn(ClassRunMode::Server);
        mf.object(funcName());
        mf.run();
        return;
    }

    strSQL = StrFmt("BACKUP DATABASE [%1]"
                    + " TO DISK = N'%2'"
                    + " WITH COMPRESSION,"
                    + " NOFORMAT,"
                    + " NOINIT,"
                    + " NAME = N'%3',"
                    + " SKIP",
                     SQLSystemInfo.getloginDatabase(),
                     m_backUpFileName,
                     _backupName);
    
    try
    {
        perm = new InteropPermission(InteropKind::ClrInterop);
        if (perm == null)
        {
            throw error("Error with file permissions");
        }
        perm.assert();
        objConn = new System.Data.OleDb.OleDbConnection(connectStr);
        objConn.Open();
        cmdSelect   = objConn.CreateCommand();
        cmdSelect.set_CommandText(strSQL);
        cmdSelect.ExecuteReader();
    }
    catch(Exception::CLRError)
    {
        CodeAccessPermission::revertAssert();
        perm = new InteropPermission(InteropKind::ClrInterop);
        if (perm == null)
        {
            return;
        }
        perm.assert();
        e = ClrInterop::getLastException();
        CodeAccessPermission::revertAssert();
        while( e )
        {
            exceptionStr += e.get_Message();
            e = e.get_InnerException();
        }
        info(exceptionStr);
    }
    catch
    {
        error("An Exception has occurred");
    }
    if(objConn)
        objConn.Close();
}

Последний раз редактировалось Mifeus; 02.02.2026 в 15:16.
За это сообщение автора поблагодарили: sukhanchik (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Выполнение кода на стороне SQL Server dech DAX: Программирование 29 12.11.2014 17:56
Выполнение кода .Net в AX Stainless DAX: Программирование 2 10.06.2011 14:29
Channel9: Peter Villadsen and Gustavo Plancarte: X++ to MSIL Blog bot DAX Blogs 30 24.08.2010 17:11
Подключение АОС к новой БД AxaptaUser DAX: Администрирование 4 07.04.2008 16:09
Как из кода завершить выполнение текущей сессии клиента? ravil DAX: Программирование 2 25.09.2003 08:21

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:54.