Показать сообщение отдельно
Старый 25.07.2013, 08:51   #1  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Выполнение кода на стороне SQL Server
Всем добрый день. Вопрос уже обсуждался, я нашел кучу примеров, сделал все "правильно", но проблема осталась нерешенной. На самом деле мне нужно выполнить хранимую процедуру. Но даже обычный SELECT возвращает ошибку в методе executeQuery(). AX 4.0, у меня на сервере есть админские права.
Ошибка следующая:
Request for the permission of type 'SqlStatementExecutePermission' failed.
(S)\Classes\SqlStatementExecutePermission\demand
(S)\Classes\Statement\executeQuery
(C)\Jobs\sqlServerTest - line 18

X++:
public static server void sqlServerTest(Args _args)
{
    DictTable   dt      = new DictTable(tablenum(InventTable));
    str         sql     = strfmt("SELECT * FROM %1 WHERE %1.DataAreaId = '%2'",
                            dt.name(DbBackend::Sql)
                          , curext()
                          );
    Connection  conn    = new Connection();
    Statement   stmt    = conn.createStatement();
    ResultSet   rs;

    SqlStatementExecutePermission   perm = new SqlStatementExecutePermission(sql);
    ;

    perm.assert();

    // BP deviation documented
    rs = stmt.executeQuery(sql);

    while(rs.next())
    {
        info(rs.getString(1));
        //info(rs.getString(2));
    }

    CodeAccessPermission::revertAssert();
    info("OK");
}
__________________
// no comments

Последний раз редактировалось dech; 25.07.2013 в 08:56.