中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 数据库区 -> MSSQL -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ACCESS · MSSQL
· Mysql · DB2
· ORACLE · SYBASE
· 其他相关
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
· ado.net获取存储过程...
· asp.net调用存储过程...
· 使用Data Access Ap...
· 各种存储过程使用指...
· 存储过程入门
· ASP开发中存储过程应...
· ASP开发中存储过程应...
· ASP开发中存储过程应...
· asp存储过程使用(1...
· asp存储过程使用 (...
使用 C# 编写扩展存储过程
作者:佚名  来源:不详  发布时间:2006-5-9 16:48:42  发布人:chinazhan

 减小字体 增大字体

什么是扩展存储过程?


扩展存储过程使您得以使用象C这样的编程语言创建自己的外部例程。对用户来说,扩展存储过程与普通存储过程一样,执行方法也相同。可将参数传递给扩展存储过程,扩展存储过程可返回结果,也可返回状态。扩展存储过程可用于扩展Microsoft®SQLServer™2000的功能。

扩展存储过程是SQLServer可以动态装载并执行的动态链接库(DLL)。扩展存储过程直接在SQLServer的地址空间运行,并使用SQLServer开放式数据服务(ODS)API编程。

编写好扩展存储过程后,固定服务器角色sysadmin的成员即可在SQLServer中注册该扩展存储过程,然后授予其他用户执行该过程的权限。扩展存储过程只能添加到master数据库中。



使用C#编写扩展存储过程

下面就以一个简单的例子来演示如何用C#编写扩展存储过程。
首先,我们创建一个简单的C#类库文件:

//C#file:Csserver.cs

usingSystem;
usingSystem.Runtime.InteropServices;
usingSystem.Reflection;
usingSystem.Runtime.CompilerServices;

[assembly:AssemblyTitle("CSServer")]
[assembly:AssemblyDescription("TestSQL.NETinterop")]
[assembly:AssemblyVersion("1.0.0.1")]
[assembly:AssemblyDelaySign(false)]
[assembly:AssemblyKeyFile("MyKey.snk")]
namespaceSQLInterop{
publicinterfaceITest{
stringSayHello();
}

[ClassInterface(ClassInterfaceType.AutoDual)]
publicclassCsharpHelper:ITest{
publicstringSayHello(){
return"HellofromCSharp";
}
}
}


然后创建用 sn-k为该类库创建一个强名密钥文件,并编译之。
sn-kMyKey.snk
csc/t:libraryCsserver.cs

注册该类库:
regasm/tlb:Csserver.tlbcsserver.dll/codebase


这样一个扩展存储过程就编写注册完了,下面我们在sqlserver中测试一下效果。

T-SQLstoredproc.

DECLARE@objectint
DECLARE@hrint
DECLARE@propertyvarchar(255)
DECLARE@returnvarchar(255)
DECLARE@srcvarchar(255),@descvarchar(255)

--创建对象实例。
EXEC@hr=sp_OACreate'SQLInterop.CsharpHelper',@objectOUT
IF@hr<>0
BEGIN
EXECsp_OAGetErrorInfo@object,@srcOUT,@descOUT
SELECThr=convert(varbinary(4),@hr),Source=@src,Description=@desc
RETURN
END

--调用对象方法。
EXEC@hr=sp_OAMethod@object,'SayHello',@returnOUT
IF@hr<>0
BEGIN
EXECsp_OAGetErrorInfo@object,@srcOUT,@descOUT
SELECThr=convert(varbinary(4),@hr),Source=@src,Description=@desc
RETURN
END
PRINT@return

--销毁对象实例。
EXEC@hr=sp_OADestroy@object
IF@hr<>0
BEGIN
EXECsp_OAGetErrorInfo@object,@srcOUT,@descOUT
SELECThr=convert(varbinary(4),@hr),Source=@src,Description=@desc
RETURN
END
   asp">存储过程asp?tags=C#">C#
 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .