CLR开发环境如何建立

zonelive 2007-04-19 09:03:30
我已安装了SQLSERVER2005企业版,系统环境是2003,还需要装那些软件才可以写CLR函数、过程呢,在那里可以下载到这些软件,谢谢!
...全文
256 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2007-04-19
  • 打赏
  • 举报
回复
再装个vs.net 2005就可以了(开发语言用VB/C#等都行)
zonelive 2007-04-19
  • 打赏
  • 举报
回复
楼上的,我不是要代码,是要配置这个环境
zlp321002 2007-04-19
  • 打赏
  • 举报
回复
eg:
可以使用 CLR 函数访问外部资源,例如文件、网络资源、Web 服务及其他数据库(包括 SQL Server 远程实例)。这可以通过使用 .NET Framework 中的各种类(例如 System.IO、System.WebServices 及 System.Sql 等)来实现。至少应将包含此类函数的程序集配置为设置了 EXTERNAL_ACCESS 权限,才能实现此目的。可以使用 SQL 客户端托管提供程序访问 SQL Server 远程实例。但在 CLR 函数中不支持与发起服务器的环回连接。


----实例:

--1: 创建Vs.net 2005 建C#项目文件
--创建新类(EventLog.cs):
--代码:
using System;
using System.Data.Sql;
using Microsoft.SqlServer.Server;
using System.Collections;
using System.Data.SqlTypes;
using System.Diagnostics;

public class TabularEventLog
{
[SqlFunction(FillRowMethodName = "FillRow")]
public static IEnumerable InitMethod(String logname)
{
return new EventLog(logname, Environment.MachineName).Entries;
}

public static void FillRow(Object obj, out SqlDateTime timeWritten, out SqlChars message, out SqlChars category, out long instanceId)
{
EventLogEntry eventLogEntry = (EventLogEntry)obj;
timeWritten = new SqlDateTime(eventLogEntry.TimeWritten);
message = new SqlChars(eventLogEntry.Message);
category = new SqlChars(eventLogEntry.Category);
instanceId = eventLogEntry.InstanceId;
}
}

--2: 创建创建包含类元数据和托管代码的托管应用程序模块,将其作为 SQL Server 实例中的对象。
CREATE ASSEMBLY tvfEventLog
FROM 'D:\IISWebRoot\SQLCLR\SQLFunction\SQLFunction\bin\Debug\SQLFunction.dll'
WITH PERMISSION_SET = UNSAFE
GO
--3: 创建 CLR 函数。
CREATE FUNCTION ReadEventLog(@logname nvarchar(100))
RETURNS TABLE
(logTime datetime,Message nvarchar(4000),Category nvarchar(4000),InstanceId bigint)
AS
EXTERNAL NAME tvfEventLog.TabularEventLog.InitMethod
GO
--4: 测试
SELECT top 10 *
FROM dbo.ReadEventLog(N'Security') as T
go
--结果(自己查看)

--删除环境
Drop function ReadEventLog
Drop ASSEMBLY tvfEventLog

scroing 2007-04-19
  • 打赏
  • 举报
回复
沙发...

11,848

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧