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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.09.2007, 15:08   #1  
monk is offline
monk
Участник
 
67 / 12 (1) ++
Регистрация: 14.10.2002
CodeAccessPermission DAX 4 SP2
Добрый день.

В коде, который указан ниже при выполнении возникает ошибка

Код:
server static void Job2(Args _args)
{
    Connection                    cn = new Connection();
    Statement                     st;
    SqlStatementExecutePermission sqlPerm;
    str                           sSQL;
    ;


    sSQL = "select AccountNum from LedgerTable";

    sqlPerm = new SqlStatementExecutePermission(sSQL);
    sqlPerm.assert();

    st = cn.createStatement();
    st.executeQuery(sSQL);
}

Код:
Сообщение (15:18:08)
Сбой запроса на разрешение типа "SqlStatementExecutePermission".
(S)\Classes\SqlStatementExecutePermission\demand
(S)\Classes\Statement\executeQuery
(C)\Jobs\Job2 - line 16

Подскажите, где я ошибаюсь?
Старый 03.09.2007, 15:26   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
От того, что вы написали server, Job не станет выполняться на сервере - они всегда выполняются на клиенте.

Проверить же доступ можно только в коде, который выполняется на сервере.
Соответственно, создайте класс и в него скопируйте этот метод.
Старый 03.09.2007, 16:13   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от kashperuk Посмотреть сообщение
От того, что вы написали server, Job не станет выполняться на сервере - они всегда выполняются на клиенте.
Немного поправлю - джоб можно заставить выполняться на сервере, если запускать его через MenuItem для которого установлено свойство Server.

Правда, еще вопрос что проще...
Старый 03.09.2007, 16:26   #4  
monk is offline
monk
Участник
 
67 / 12 (1) ++
Регистрация: 14.10.2002
Спасибо, все заработало.


Можно еще вопрос из той же области:

Правильно ли я понял, что механизм разрешений работает следующим образом:

1. Создаем экземпляр класс проверок *Permission
2. Вызываем метод assert, который проверят возможность исполнения опасного действия
3. В классе, который исполняет опасное действие, вызывается метод demand, который по стеку вызовов ищет нужный ему assert

Если это так, то не совсем понятен следующий код в методе:

Код:
WinApiServer::createFile()
{
  // check file I/O permission
    if(_flags == #OPEN_EXISTING)
    {
        fileIOPerm = new FileIOPermission(_fileName,'r');
    }
    else
    {
        fileIOPerm = new FileIOPermission(_fileName,'w');
    }
    fileIOPerm.demand();     
}
Почему здесь идет явный вызов demand ?
Такой код встречается во многих методах класса WinApiServer

Кстати, если вызвать этот метод, то на вызове demand возникает ошибка разрешения.

Вероятно это ошибка и должен быть вызов assert.
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка (?) при печати приходного ордера в DAX 4.0 SP2 Ivanhoe DAX: Программирование 7 19.01.2021 14:13
DAX 4 SP2 FP1 EE xshaman DAX: Программирование 8 09.09.2008 15:13
Пропали обновления приложения DAX 4.0 EE SP2 pe DAX: Администрирование 3 20.02.2008 00:28
Проблема с установкой DAX SP2 EE Aleck DAX: Администрирование 2 30.11.2007 16:29
Не отображаются аналитики в lookup. DAX 4.0 SP2 Ошибка? Ivanhoe DAX: Функционал 2 25.09.2007 16:34

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

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

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