| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			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 Подскажите, где я ошибаюсь?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			От того, что вы написали server, Job не станет выполняться на сервере - они всегда выполняются на клиенте. 
		
		
		
		
		
		
			
		
		
		
		
	Проверить же доступ можно только в коде, который выполняется на сервере. Соответственно, создайте класс и в него скопируйте этот метод.  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Правда, еще вопрос что проще...  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо, все заработало. 
		
		
		
		
		
		
		
	Можно еще вопрос из той же области: Правильно ли я понял, что механизм разрешений работает следующим образом: 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();     
}Такой код встречается во многих методах класса WinApiServer Кстати, если вызвать этот метод, то на вызове demand возникает ошибка разрешения. Вероятно это ошибка и должен быть вызов assert.  | 
| 
	
 |