使用SQLCLR函数调用R.net

时间:2016-08-18 17:26:48

标签: c# sql-server sqlclr r.net

我编写了一个与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

0 个答案:

没有答案