首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 图形图象-> 相关软件
使用C#编写扩展存储过程-.NET教程,C#语言
作者:网友供稿 点击:55
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
扩展存储过程使您得以使用象 c 这样的编程语言创建自己的外部例程。对用户来说,扩展存储过程与普通存储过程一样,执行方法也相同。可将参数传递给扩展存储过程,扩展存储过程可返回结果,也可返回状态。扩展存储过程可用于扩展 microsoft® sql server™ 2000 的功能。

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

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

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

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

//c# file: csserver.cs

using system;
using system.runtime.interopservices;
using system.reflection;
using system.runtime.compilerservices;

[assembly: assemblytitle("csserver")]
[assembly: assemblydescription("test sql .net interop")]
[assembly: assemblyversion("1.0.0.1")]
[assembly: assemblydelaysign(false)]
[assembly: assemblykeyfile("mykey.snk")]
namespace sqlinterop {
public interface itest{
string sayhello();
}

[classinterface(classinterfacetype.autodual)]
public class csharphelper : itest {
public string sayhello() {
return "hello from csharp";
}
}
}


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

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


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

t-sql stored proc.

declare @object int
declare @hr int
declare @property varchar(255)
declare @return varchar(255)
declare @src varchar(255), @desc varchar(255)

-- 创建对象实例。
exec @hr = sp_oacreate sqlinterop.csharphelper, @object out
if @hr <> 0
begin
exec sp_oageterrorinfo @object, @src out, @desc out
select hr=convert(varbinary(4),@hr), source=@src, description=@desc
return
end

-- 调用对象方法。
exec @hr = sp_oamethod @object, sayhello, @return out
if @hr <> 0
begin
exec sp_oageterrorinfo @object, @src out, @desc out
select hr=convert(varbinary(4),@hr), source=@src, description=@desc
return
end
print @return

-- 销毁对象实例。
exec @hr = sp_oadestroy @object
if @hr <> 0
begin
exec sp_oageterrorinfo @object, @src out, @desc out
select hr=convert(varbinary(4),@hr), source=@src, description=@desc
return
end 
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·使用C#在进度条中显示复制文件的进度-.NET教程,C#语言
·JAVASCRIPT调用JAVA-JSP教程,Java技巧及代码
·Java开源项目Hibernate包作用详解-JSP教程,Java技巧及代码
·新型单相逆变电源的研制
·解读Windows 2000/XP分层驱动模型-.NET教程,Windows开发
·NET中打印包含有格式的 RichTextBox 的内容-.NET教程,Asp.Net开发
·java用于链接数据库的例子(*.properties)-JSP教程,资料/其它
·cable modem及其系统的配置和使用
·asp.net 1.1/ 2.0 中快速实现单点登陆-.NET教程,Asp.Net开发
·持续集成 Java手册-JSP教程,Java技巧及代码
最新文章
·像我一样的菜鸟站长常犯的几种错误_站长心得
·网友开博客真的能赚钱吗?_网赚技巧
·google广告代码可以放到几个网站吗?_网赚技巧
·论坛如何最佳化?adsense最佳化案例_网赚技巧
·姚劲波:站长要用开放平和的心态去坚持_站长访谈
·章征军和他的站长网_站长访谈
·建自己想建的站坚持下去 就是最好的seo_站长心得
·autocad 2008的service pack 1测试版发布_autocad教程
·网站的定位在于选题(后半部分参考市场报)_站长心得
·互联网赚钱的几种基本模式_站长心得
相关主题
  • 使用C#编写LED样式时钟控件-.NET教程,C#语言
  • 使用C#编写的一个定时关机程序-.NET教程,C#语言
  • 使用C#编写一个计时器-.NET教程,C#语言
  • 使用C#编写Ice应用程序-.NET教程,C#语言
  • 使用C#编程将websphere MQ 5.3 windows客户端消息发送到linux服务器端-.NET教程,C#语言
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭