的存储过程调用Com组件

来源:互联网 发布:lua编程学习 编辑:程序博客网 时间:2024/05/19 23:17
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
  SQLserver的T-Sql语言的功能是非常的强大,但是有个时候也确实是有些限制和不方便,一天,豆腐想为什么不象asp一样大量的借用组件呢?说干就干,我这就开始在Sqlonlinebook中查找,呵呵终于找到了一个Sql的系统存储过程sp_OACreate,下面大家就和豆腐一起去看看这个存储过程的神气之处吧

  首先我们先用VB作一个最简单的组件,因为是介绍性的文章,所以这个组件是非常的的简单,在具体的工作中,可以写个比这个业务复杂的多的组件

ProjectName:testSQLCom

ClassName:TestMath

PublicFunctionAddMe(aAsLong,bAsLong)AsLong

AddMe=a+b

EndFunction

编译生成后,我们就可以在SqlServer中对这个Com组件进行调用了

declare@iint

declare@intRetint

declare@intRetCodeint

DECLARE@strErrvarchar(255)

DECLARE@strErr1varchar(255)

/*首先创建Com实例*/

exec@ret_code=sp_OACreate"testSQLCom.TestMath",@iout

IF@intRetCode<>0

BEGIN

/*创建实例失败*/

EXECsp_OAGetErrorInfo@i,@strErrOUT,@strErr1OUT

PRINT"创建实例失败,失败的原因是::"+@strErr+""+@strErr1

RETURN

END

/*创建成功,开始调用*/

EXEC@intRetCode=sp_OAMethod@i,'AddMe',@retOUT,100,200


IF@intRetCode<>0

BEGIN

/*调用方法出错*/

EXECsp_OAGetErrorInfo@i,@strErrOUT,@strErr1OUT

PRINT"调用方法失败,失败的原因是::"+@strErr+""+@strErr1

EXECsp_OADestroy@i

RETURN

END

PRINT"返回的结果是"+Str(@intRet)

execsp_OADestroy@i

以前是存储过程的输出

Step4:

返回的结果是300

  我们在这篇文章中介绍了在Sqlserver中使用组件的方法,具体的帮助大家请查看SQLOnloneBook

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击