Доброе время суток, есть класс в методе которого реализовано серверное подключение к 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
Подскажите пожалуйста в чем причина и как устранить ошибку.