SQL Server的存储过程调用dll

来源:互联网 发布:刷recovery软件 编辑:程序博客网 时间:2024/05/17 04:30

/*--下面的部分在VB中完成 首先我们先用VB 作一个最简单的组件 工程名称: testSQLCOM 类名: TestMath ''函数,计算两个整数相加的结果 Public Function AddMe(a As Long, b As Long) As Long AddMe = a + b End Function 编译生成后,我们就可以在 Sql Server 中对这个 Com 组件进行调用了 --*/ /*--下面是SQL中对上面DLL的调用--*/ --定义用到的变量 declare @err int,@src varchar(255),@desc varchar(255) declare @obj int,@re int --创建调用实例 exec @err=sp_OACreate 'testSQLCOM.TestMath', @obj out if @err<>0 goto lberr --如果创建失败,则进行错误处理 --调用DLL中的函数 exec @err=sp_OAMethod @obj,'AddMe',@re out,100,200 if @err<>0 goto lberr --如果调用错误,则进行错误处理 print '返回的结果是:' + str(@re) --完成后释放 exec sp_OADestroy @obj return lberr: exec sp_oageterrorinfo 0,@src out,@desc out select cast(@err as varbinary(4)) as 错误号 ,@src as 错误源,@desc as 错误描述

C#的如下: 1、在vs2005下新建工程ClassLibrary,添加类Compute namespace ClassLibrary { public class Compute { public Compute() { } public float add(float a,float b) { return a + b; } } } 2.命令注册 ClassLibrary.dll 中包含的所有公共类,并生成和注册类型库 ClassLibrary.tlb regasm C:/Windows/System32/ClassLibrary.dll /tlb C:/Windows/System32/ClassLibrary.tlb 3.在SQL引用 --定义用到的变量 declare @err int,@src varchar(255),@desc varchar(255) declare @obj int,@re int --创建调用实例 exec @err=sp_OACreate 'ClassLibrary.Compute', @obj out if @err<>0 goto lberr --如果创建失败,则进行错误处理 --调用DLL中的函数 exec @err=sp_OAMethod @obj,'add',@re out,100,200 if @err<>0 goto lberr --如果调用错误,则进行错误处理 print '返回的结果是:' + str(@re) --完成后释放 exec sp_OADestroy @obj return lberr: exec sp_oageterrorinfo 0,@src out,@desc out select cast(@err as varbinary(4)) as 错误号 ,@src as 错误源,@desc as 错误描述

原创粉丝点击