Вызов R.net с использованием функции SQLCLR
Я написал функцию CLR, которая взаимодействует с R.net и выполняет файл test.R. Эта функция работает отлично, когда я запустил ее из приложения C#.net. Затем я создал dll для этого приложения и интегрировал его с Sql server 2012. Когда я пытаюсь вызвать этот метод с сервера sql, он продолжает выполнять команду, и ничего не происходит. Можете ли вы предложить мне, что могло пойти не так? Ниже приведен фрагмент моего кода
C#:
public static void callfrmFile(out string result)
{
try
{
REngine.SetEnvironmentVariables();
REngine engine = REngine.GetInstance();
engine.Initialize();
engine.Evaluate("setwd('E://Clients//RStuido')");
engine.Evaluate("source('test1.R')");
engine.Dispose();
result = "1";
}
catch (Exception ex)
{
result = ex.Message;
}
}
SQL Server:
CREATE PROC spa_callRfrmFile
(@result NVARCHAR(1024) OUTPUT)
AS
EXTERNAL NAME Rintegrate.[Rintegrate.UDF].callfrmFile
GO
DECLARE @a NVARCHAR(500)
EXEC spa_callRFrmFile @a OUT
SELECT @a