Показать сообщение отдельно
Старый 07.05.2010, 18:06   #1  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
? Сбой запроса на разрешение типа "SqlStatementExecutePermission".
Сбой запроса на разрешение типа "SqlStatementExecutePermission".

Сбой запроса на разрешение типа "SqlStatementExecutePermission".
(S)\Classes\SqlStatementExecutePermission\demand
(S)\Classes\Statement\executeQuery

Каких прав доступа не хватает?

Вызываю метод класса на стороне сервера:
X++:
server static SET pGet_Items()
{
    Connection  con = new Connection();
    Statement   stmt = con.createStatement();
    ResultSet   resultSet;

    set s1 = new set (types::Container);
    ;

    new SqlStatementExecutePermission(sqlExpression).assert();
    sqlExpression = Strfmt("exec [pGet_Items_CLEAR] '%1'", InventParameters::find().it_SQLDB);
    resultSet = stmt.executeQuery(sqlExpression);
    CodeAccessPermission::revertAssert();

    return s1;
}
Все время валится на stmt.executeQuery(sqlExpression);

Процедуру элементарную вызывает
Код:
ALTER PROCEDURE [dbo].[pGet_Items_CLEAR] 
		@DB		varchar(20)
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @TableName	varchar(50)
	SET @TableName = '.dbo.Items'; 	  

	EXEC ('TRUNCATE TABLE ' + @DB + @TableName)
	
	Select 0 as [tmp];
	
END
С чем это связано ошибка?

Вызов другой процедуры проходит нормально, которая возвращает строки. Но в той процедуре тоже есть строка EXEC ('TRUNCATE TABLE ' + @DB + @TableName), но она почему то не отрабатывает при вызове процедуры из аксапты. Таблица так и остается полной.

Собственно запрос в SQL Profiler:
Код:
declare @p1 int
set @p1=0
declare @p3 int
set @p3=2
declare @p4 int
set @p4=8193
declare @p5 int
set @p5=0
exec sp_cursoropen @p1 output,N'exec pGet_Items ''Test''',@p3 output,@p4 output,@p5 output
select @p1, @p3, @p4, @p5
Если подключится с правами юзера АОС к сиквелу и запустить код из профайлера то все отлично отрабатывает , и EXEC ('TRUNCATE TABLE ' + @DB + @TableName) тоже.

Не пойму почему с вызовом хранимой процедуры из аксапты такая проблема.