sql-server – 来自UDF的Sql Server CLR文件系统访问
发布时间:2020-12-12 06:32:39 所属栏目:MsSql教程 来源:网络整理
导读:我写了一个简单的UDF,应绘制图形并将其保存在磁盘上. 实际上,我使用UDF作为SQL SERVER和R之间的代理,因此UDF只通过DCOM将R脚本从SQL SERVER传递给R引擎.一切正常,直到我尝试绘制图形或将其保存到磁盘.我使用UNSAFE权限创建了程序集. 所以,它是这样的: SQL引
我写了一个简单的UDF,应绘制图形并将其保存在磁盘上.
实际上,我使用UDF作为SQL SERVER和R之间的代理,因此UDF只通过DCOM将R脚本从SQL SERVER传递给R引擎.一切正常,直到我尝试绘制图形或将其保存到磁盘.我使用UNSAFE权限创建了程序集. 所以,它是这样的: 所以,我的第一个问题是,我可以从UDF创建GUI吗?我猜不是,但值得一提. 第二个问题是,为什么具有UNSAFE权限的程序集无法访问文件系统.我没有收到任何错误,只是没有任何反应. R环境位于不同的地址空间中,因此我没有看到SQL引擎对CLR的权限会影响它的任何原因. 谢谢 编辑: 我尝试用程序做同样的事情.现在创建一个空文件.这是我的R测试代码: jpeg("C:test1.jpg"); x <- rnorm(100); hist(x); dev.off() 知道这里发生了什么吗? 解决方法>您无法从服务器端代码实例化GUI> UNSAFE很危险,EXTERNAL_ACCESS会更好,因为它仍然允许文件系统访问 >如果没有错误,那么您的代码很可能正常运行,但它正在执行与您预期的不同的操作;你可以添加一些调试代码或附加调试器吗? >这里的程序比UDF更合适,因为 they are much more flexible 但目前尚不清楚为什么你这样做.在SQL Server外部编写一个小(?)程序以从数据库中获取数据,调用R程序并保存图像可能要容易得多. SQL Server中的服务器端代码非常适合处理数据,但即使在使用CLR代码时,通常也很难与文件系统和外部资源进行交互. 您是否需要在SQL Server中执行此操作? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |