博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PCB 周期计算采用 SQL 函数调用.net Dll 标量函数 实现
阅读量:5171 次
发布时间:2019-06-13

本文共 1545 字,大约阅读时间需要 5 分钟。

PCB 周期计算采用 SQL函数调用.net Dll实现 (实现代码重用目的)

玩过SQL SERVER数据库经常经需要写存储过程,函数之类的,当业务逻辑过于复杂,用SQL去写简直是恶梦,

这里以PCB周期函数用.NET写好了,用MS SQL调用.net基本步骤整理一下如下

 

第1步:SQL服务器CLR配置(允许SQL调用.net程序),执行SQL命令

sp_configure 'show advanced options', 1;     RECONFIGURE WITH override    GO     sp_configure 'clr enabled', 1;     RECONFIGURE WITH override    GO    Sp_changedbowner 'sa',true   --sa改为当前登入用户名    alter database [dbname] set trustworthy on    --bbname 改为自己的库名

 

第2步:注册 CLR 程序集

create  ASSEMBLY SQLfunctionAssembly      FROM 'D:\Program Files\SQLClr.dll'      --改为自己C#写的dll路径填写   WITH PERMISSION_SET = UNSAFE;

            创建的.net程序集会加载成功,数据会写入下表:

             

 

第3步:创建标量函数

CREATE FUNCTION[dbo].[getWeek] (    @CurrentDate datetime,    @Format NVARCHAR(100),    @AddDay int    )    RETURNS NVARCHAR(128)    WITH EXECUTE AS CALLER            AS    EXTERNAL NAME [SQLfunctionAssembly].[SQLClr.SQLfunction].[getWeek]    --[SQL程序集名].[命名空间.类名].[方法名]

 

 第4步:执行测试结果:

SELECT dbo.getWeek('2009-12-31','WWYY',0)

 

 

C#代码:

public partial class SQLfunction    {///         /// 获取周期        ///         ///         ///         ///         /// 
[Microsoft.SqlServer.Server.SqlFunction(DataAccess = DataAccessKind.Read, IsDeterministic = true, Name = "getWeek")] public static SqlString getWeek(SqlDateTime CurrentDate,SqlString Format, SqlInt32 AddDay) { SqlString result = tool.getWeek(CurrentDate.Value, Format.Value, AddDay.Value); return result; }}

 

具体可以参考(有详细说明):

https://www.cnblogs.com/Brambling/p/8000911.html

 

转载于:https://www.cnblogs.com/pcbren/p/9218813.html

你可能感兴趣的文章
程序员吃自助餐后的反思
查看>>
PHP数组的操作
查看>>
xdebug php.ini 配置
查看>>
案例实操
查看>>
ApplicationContextAware接口的作用
查看>>
CSS3盒模型display:box详解
查看>>
JAVA中RSS解析器(rome.jar和jdom.jar)范例
查看>>
[Noi2010]Plane 航空管制 贪心
查看>>
T-SQL批量添加指定记录3种方法
查看>>
【完全开源】博客园客户端UWP版(上篇)
查看>>
[hbase] HBase内置过滤器的一些总结
查看>>
菜鸟学Linux - Hard Link与Symbolic Link
查看>>
c#读写txt文本
查看>>
Lua 5.1 for Delphi 2010
查看>>
JavaScript实践心得
查看>>
Office2019 VOL版本 自定义安装组件
查看>>
Nodepad++替换中文字符
查看>>
数据结构作业——图的存储及遍历(邻接矩阵、邻接表+DFS递归、非递归+BFS)...
查看>>
重定向与转发
查看>>
大衍数列
查看>>