SQL2005集成了CLR功能,即可以调用.NET写的DLL库。这样,数据库有动作时,通过触发器可以调用该DLL生成的Assembly程序集,通知外部程序。通常步骤如下:
第一步:
1. 选择SQL Servecr2005 配置工具=> Sql Servecr 外围应用配置器
2. 选择功能的外围应用配置器
3. 选择CLR集成中 启用CLR集成
第二步:
1. 在VS.NET环境中部署 SQL Server 项目将在为该项目指定的数据库中注册程序集。
2. 创建类,如下
public class Class1
{
public static string MySplit(int filedIndex, string filedName)
{
//filedIndex从1开始
try
{
if (filedIndex == null || filedIndex <= 0 || filedName == null || filedName == "")
{
return "";
}
else
{
return filedName.Split('|')[filedIndex - 1].Trim();
} }
catch
{
return "";
}
}
}
注: 需去掉该类的命名空间
3. 生成得到程序集 ClassLibrary1.dll 第三步:
打开SQL Server 选择一个数据库,使用如下语句,创建程序集
CREATE ASSEMBLY Class1
AUTHORIZATION [dbo]
FROM 'C:\ClassLibrary1.dll'
WITH PERMISSION_SET = SAFE
第四步:
创建函数
CREATE FUNCTION dbo.MySplit
(
@filedIndex AS INT,
@filedName AS NVARCHAR(255)
)
RETURNS NVARCHAR(255)
AS
EXTERNAL NAME Class1.Class1.MySplit
注: Class1.Class1.MySplit
Class1 为程序集名;
Class1 为在C#中创建的类名;
MySplit 为方法名; 第五步,触发器调用函数。
请问各位,,在MySQL及Oracle中能否实现上述功能,如何实现????????????????
第一步:
1. 选择SQL Servecr2005 配置工具=> Sql Servecr 外围应用配置器
2. 选择功能的外围应用配置器
3. 选择CLR集成中 启用CLR集成
第二步:
1. 在VS.NET环境中部署 SQL Server 项目将在为该项目指定的数据库中注册程序集。
2. 创建类,如下
public class Class1
{
public static string MySplit(int filedIndex, string filedName)
{
//filedIndex从1开始
try
{
if (filedIndex == null || filedIndex <= 0 || filedName == null || filedName == "")
{
return "";
}
else
{
return filedName.Split('|')[filedIndex - 1].Trim();
} }
catch
{
return "";
}
}
}
注: 需去掉该类的命名空间
3. 生成得到程序集 ClassLibrary1.dll 第三步:
打开SQL Server 选择一个数据库,使用如下语句,创建程序集
CREATE ASSEMBLY Class1
AUTHORIZATION [dbo]
FROM 'C:\ClassLibrary1.dll'
WITH PERMISSION_SET = SAFE
第四步:
创建函数
CREATE FUNCTION dbo.MySplit
(
@filedIndex AS INT,
@filedName AS NVARCHAR(255)
)
RETURNS NVARCHAR(255)
AS
EXTERNAL NAME Class1.Class1.MySplit
注: Class1.Class1.MySplit
Class1 为程序集名;
Class1 为在C#中创建的类名;
MySplit 为方法名; 第五步,触发器调用函数。
请问各位,,在MySQL及Oracle中能否实现上述功能,如何实现????????????????
MySQL 不知道, 猜测没有数据库服务器扮演了 CLR Host,
负责加载 CLR, 运行托管代码, 线程模型跟通常的 host 不同.
搜索 ORacle CLR 即可.
可以给出更详细的说明吗??在实现过程上与SQL2005有什么区别??
Oracle CLR搜不到呀???