如何解决F#核心库可以通过SQLCLR批准吗?
| 根据该线程,F#Core必须经过sqlCLR批准才能将程序集标记为“ 0”。这有计划吗?还能做到吗?解决方法
我相信可以做到。但是,F#核心库是Microsoft的唯一财产。这意味着您不能修改其代码并重新编译它以匹配并符合SQLCLR SAFE。我建议您使用Microsoft的connect网站向Microsoft添加建议。
Microsoft连接位于:http://connect.microsoft.com(注册之前,您必须在live.com或hotmail.com上注册并拥有电子邮件帐户)。
若要手动添加.NET DLL并将其集成到SQL Server,可以执行以下操作:
在此示例中,必须首先编译F#代码中的DLL。我从MSDN Library链接中迈出了这一步:
http://msdn.microsoft.com/zh-CN/library/ms254956(v=vs.80).aspx
只是不要忘记将PERMISSION_SET = SAFE添加到CREATE ASSEMBLY命令中。
这是我从上面的链接引用的步骤:
在SQL Server中加载和运行“ Hello World”存储过程
一旦样品程序成功
编译后,您可以在SQL中对其进行测试
服务器。为此,请打开SQL Server
Management Studio并创建一个新的
查询,连接到合适的测试
数据库(例如,
AdventureWorks示例数据库)。我们
将需要创建程序集,所以我们
可以访问存储过程。对于
在这个例子中,我们假设您
创建了helloworld.dll
程序集在C:\\目录中。添加
以下Transact-SQL语句
您的查询。
CREATE ASSEMBLY helloworld from \'c:\\helloworld.dll\' WITH PERMISSION_SET = SAFE
创建装配后,
我们现在可以访问我们的HelloWorld
使用创建过程的方法
声明。我们将调用存储的
程序“你好”:
CREATE PROCEDURE hello
AS
EXTERNAL NAME helloworld.HelloWorldProc.HelloWorld
创建过程后,
它可以像正常一样运行
写入的存储过程
Transact-SQL。执行以下
命令:
EXEC hello
这应该导致以下结果
SQL Server管理中的输出
Studio消息窗口。
Hello world!
编辑:基于下面的评论者,他对F#的权利现在是开源的!您可以修改并重新编译它以适合您的需求。
编辑:添加有关如何将DLL集成到SQL Server CLR集成的更多详细指南。
,一个很棘手的技巧是使用fsc的--standalone标志(又名F#编译器)。这甚至可以添加到项目设置中,并嵌入到F#运行时库的输出工件中(以及所有其他可嵌入的依赖项)。我相信到那时,只要将程序集标记为SQLCLR安全,就应该能够完全按照您的要求进行操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。