我编写了一个与R.net交互并执行test.R文件的CLR函数。当我从C#.net应用程序运行它时,此功能正常工作。然后我为这个应用程序构建了一个dll并将其与Sql server 2012集成。当我尝试从sql server调用此方法时它继续执行命令并且没有任何反应。你能告诉我什么可能出错吗? 以下是我的代码片段 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