在 SQL Server 的存储过程中调用 Com 组件

原创 2001年02月13日 10:44:00

在 SQL Server 的存储过程中调用 Com 组件

关键词:Sql Server

在 SQL Server 的存储过程中调用 Com 组件


/**
  ***
  豆腐制作 都是精品
  http://www.asp888.net 豆腐技术站
  如转载 请 注明出处
  */

    SQL server 的 T-Sql 语言的功能是 非常的强大,但是有个时候 也确实是有些限制和不方便,一天,豆腐想为什么不象 asp 一样大量的借用组件呢?说干就干,我这就 开始在 Sql online book 中查找,呵呵终于找到了一个Sql的系统存储过程sp_OACreate,下面大家就和豆腐一起去看看这个存储过程的神奇之处吧

    首先我们先用VB 作一个最简单的组件 ,因为是介绍性的文章,所以这个组件是非常的的简单,在具体的工作中,可以写个比这个业务复杂的多的组件
Project Name: testSQLCOM
Class Name: TestMath
Public Function AddMe(a As Long, b As Long) As Long
   AddMe = a + b
End Function
编译生成后,我们就可以在 Sql Server 中对这个 Com 组件进行调用了
declare @i int
declare @intRet int
declare @intRetCode int
DECLARE @strErr varchar (255)
DECLARE @strErr1 varchar (255)
/* 首先创建Com 实例 */
exec @ret_code = sp_OACreate "testSQLCOM.TestMath", @i out
IF @intRetCode <> 0
BEGIN
  /* 创建实例 失败 */
  EXEC sp_OAGetErrorInfo @i, @strErr OUT, @strErr1 OUT
  PRINT "创建实例失败,失败的原因是:: " + @strErr + " " + @strErr1
  RETURN
END

/* 创建成功,开始调用 */
EXEC @intRetCode = sp_OAMethod @i,'AddMe',@ret OUT,100,200
IF @intRetCode <> 0
BEGIN
   /*  调用方法出错 */
  EXEC sp_OAGetErrorInfo @i, @strErr OUT, @strErr1 OUT
  PRINT "调用方法失败,失败的原因是:: " + @strErr + " " + @strErr1
  EXEC sp_OADestroy @i
  RETURN
END
PRINT "返回的结果是" + Str(@intRet)
exec sp_OADestroy @i

以前是存储过程的输出

Step 4:
返回的结果是 300

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

在SQLServer中调用Com组件

 有时候,出于SQL Server本身的功能不足,我们需要用外部的程序来实现,而Com由于其语言的无关性和强大的功能就成为与Sql Server接口的首选,并且sql Server本身也提供了这方面的...
  • paulchenbo
  • paulchenbo
  • 2007年03月02日 10:31
  • 1721

在sql server的存储过程中调用com组件

有时候,出于sql server本身的功能不足,我们需要用外部的程序来实现,而com由于其语言的无关性和强大的功能就成为与sql server接口的首选,并且sql server本身也提供了这方面的系...
  • jacklhf
  • jacklhf
  • 2009年07月10日 08:30
  • 676

在Sql Server的存储过程中调用Com组件

        有时候,出于SQL Server本身的功能不足,我们需要用外部的程序来实现,而Com由于其语言的无关性和强大的功能就成为与Sql Server接口的首选,并且sql Server本身也...
  • zblue78
  • zblue78
  • 2005年06月21日 16:19
  • 1316

在SQL Server的存储过程中调用Com组件

SQL server 的 T-Sql 语言的功能是 非常的强大,但是有个时候 也确实是有些限制和不方便,为什么不象 asp 一样 大量的借用组件呢?开始在 Sql online book 中查找,终于...
  • tiaohh
  • tiaohh
  • 2005年01月25日 11:50
  • 749

用 SQL Server 2008 R2 打开 .sql 文件时提示“对COM组件的调用返回了错误HRESULT E_FAIL”

解决办法:1 开始--->管理工具--->服务 中,开启Distributed Transaction Coordinator 服务。如果Distributed Transaction Coordin...
  • u010890881
  • u010890881
  • 2017年10月18日 13:11
  • 775

SQL Server 2008存储过程中使用另一个存储过程返回的记录集

SQL Server 2008存储过程中使用另一个存储过程返回的记录集 create proc sp_pub_test_RsFromProc     @BeginTime    datetime,...
  • ghlfllz
  • ghlfllz
  • 2015年05月22日 11:50
  • 2593

在的存储过程中调用Com组件

  • zgqtxwd
  • zgqtxwd
  • 2008年04月28日 14:10
  • 118

【SQLServer】 存储过程中,使用IN函数

在存储过程中使用IN函数,传入多个参数时,会有问题,三种解决方案:添加函数:create FUNCTION [dbo].[Split2] ( @RowData varchar(max), ...
  • f627422467
  • f627422467
  • 2016年09月09日 13:11
  • 1251

对COM组件的调用返回了错误HRESULT_FAIL

DONET中引用第三方控件时发生错误"对COM组件的调用返回了错误HRESULT_FAIL" 原因是项目中没有CONFIG,添加一个web.config就OK了...
  • ahywg
  • ahywg
  • 2009年10月17日 11:19
  • 3767

SQL 存储过程里调用另一个存储过程

在存储过程里调用另一个存储过程并获取返回的结果
  • dream_follower
  • dream_follower
  • 2016年08月19日 20:46
  • 4787
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在 SQL Server 的存储过程中调用 Com 组件
举报原因:
原因补充:

(最多只允许输入30个字)