我编写了一个与 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 服务器:
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