动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   数据库 → 阅读文章
  

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

作者来源: 
阅读 数 554 人次 , 2006-4-14 10:00:00 


   

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

s首先我们先用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

 本文Tagsmssql  存储过程  数据库  组件  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:利用 Case 敘述做 SQL 的動態排列
· 下一篇:SQL中代替Like语句的另一种写法
· SQL Server连接ACCESS数据库的实现
· 将 DB2 UDB 数据库从非分区环境迁移到分区环境(1)
· SQL Server数据库技术(103)
· Sybase数据库技术(2)
· online的备份详解


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077