首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >F#核心库可以被SQLCLR批准吗?

F#核心库可以被SQLCLR批准吗?
EN

Stack Overflow用户
提问于 2011-04-15 00:51:48
回答 2查看 426关注 0票数 7

根据SQLCLR线程,F#核心必须是SQLCLR批准的,程序集才能标记为SAFE。这是有计划的吗?这件事能做到吗?

EN

回答 2

Stack Overflow用户

发布于 2011-04-15 16:35:39

我相信这是可以做到的。然而,F#核心库是微软的独有财产。这意味着您不能修改它的代码并重新编译它来匹配和遵守SQLCLR SAFE。我建议您使用Microsoft的connect网站向Microsoft添加建议。

微软connect的网址是:http://connect.microsoft.com (在注册之前,您必须在live.com或hotmail.com上注册并拥有电子邮件帐户)。

若要手动添加.NET DLL并将其集成到SQL Server,可以执行以下操作:

在本例中,必须首先编译F#代码中的动态链接库。我从MSDN Library链接执行此步骤:http://msdn.microsoft.com/en-us/library/ms254956(v=vs.80).aspx

但不要忘记将PERMISSION_SET = SAFE添加到CREATE ASSEMBLY命令中。

下面是我从上面的链接中引用的步骤:

在SQL Server中加载和运行"Hello World“存储过程

成功编译示例过程后,即可在SQL Server中对其进行测试。为此,请打开SQL Server Management Studio并创建一个新查询,并连接到适当的测试数据库(例如,AdventureWorks示例数据库)。我们需要创建程序集,这样我们才能访问存储过程。对于本例,我们假设您已经在C:\目录中创建了helloworld.dll程序集。将以下Transact-SQL语句添加到查询中。

使用PERMISSION_SET = SAFE从“c:\helloworld.dll”创建程序集helloworld

一旦创建了程序集,我们现在就可以通过使用create procedure语句来访问HelloWorld方法。我们将存储过程命名为"hello":

将过程hello创建为外部名称helloworld.HelloWorldProc.HelloWorld

一旦创建了过程,就可以像用Transact-SQL编写的普通存储过程一样运行它。执行以下命令:

EXEC问候

这将在SQL Server Management Studio消息窗口中产生以下输出。

你好,世界!

编辑:根据下面的评论,他是对的,F#现在是开源的!您可以修改和重新编译它以满足您的需要。

编辑:添加有关如何将动态链接库集成到SQL Server CLR集成的更多详细指南。

票数 1
EN

Stack Overflow用户

发布于 2011-12-13 01:29:17

一个非常糟糕的技巧是使用fsc的--standalone标志(也称为F#编译器)。这甚至可以添加到项目设置中,并将F#运行时库(以及所有其他被认为是可嵌入的依赖项)嵌入到输出工件中。我相信,在这一点上,您只需将程序集标记为SQLCLR safe,就应该能够准确地执行您想要的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5666703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档