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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.07.2015, 13:23   #1  
v.i.p.to is offline
v.i.p.to
Участник
 
14 / 10 (1) +
Регистрация: 24.07.2015
Доброе время суток, есть класс в методе которого реализовано серверное подключение к SQL БД.
задумка такая чтобы передать на класс запрос , отработка запроса произойдет на стороне сервера, далее результат(CCADORecordSet) возвращаться в вызываемый метод на клиенте.

Class MyConnection method CCADORecordSet()

Код:
 public static server  CCADORecordSet getRsFromQuery(str query)
  {
    str                DataSourse, user, passwd, ConnectCatalog;
    CCADOConnection    connection ;
    CCADOCommand       ccADOCommand;
    CCADORecordSet     record;
    COM                _comCN;
    COM                cmd;
    InteropPermission  _InteropPermission  = new InteropPermission(InteropKind::ComInterop);
    
    ;
	_InteropPermission.assert();
    
	connection = new CCADOConnection();
    DataSourse=XXX.XXX.XXX.XXX;
    user=sa;
    passwd=XXXXXX;
    ConnectCatalog=AX;


    try
    {
       connection.open("Provider=SQLOLEDB ;"+
            "Data Source="+DataSourse+" ;" +
            "Initial Catalog="+ConnectCatalog+" ;" +
            "uid="+user+" ; Connect Timeout=30000;" +
            "pwd="+passwd);

        _comCN = connection.connection();
        cmd = new COM("ADODB.Command");
        cmd.activeConnection(_comCN);
        cmd.CommandType(1);

        ccADOCommand= new CCADOCommand();
        ccADOCommand.commandText(query);
        ccADOCommand.activeConnection(connection);
        ccADOCommand.commandTimeout(6000);
        record = ccADOCommand.execute();
        return record;
        
	}
    catch
    {
       throw error("An Exception has occurred");
    }
    connection.close();
		
  }

далее допустим из job вызываем этот метод

Код:
static void Job8(Args _args)
{
    str            query;
    Table          _Table;
    CCADORecordSet record;
    COM            recordSet;
    
   ;
   
    query=strfmt("select * from inventjournaltable"  );

    record    = MyConnection::CCADORecordSet(query);
    recordSet = record.recordSet();

	while (!record.EOF())
	{
	_Table.clear();
	_Table.JournalID  = record.fields().itemName("JournalId").value();
	_Table.insert();
	recordSet.moveNext();
	}
	recordSet.close();

}

Выполняя Job получаю следующую ошибку.

Сбой запроса на разрешение типа "InteropPermission".
(S)\Classes\InteropPermission\demand
(S)\Classes\COM\EOF
(S)\Classes\CCADORecordSet\EOF- line 3
(C)\Jobs\Job8 - line 15


Подскажите пожалуйста в чем причина и как устранить ошибку.
 


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

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

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