--SQL Server的存储过程调用Com组件 /*--下面的部分在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 @objreturnlberr: exec sp_oageterrorinfo 0,@src out,@desc out select cast(@err as varbinary(4)) as 错误号 ,@src as 错误源,@desc as 错误描述
http://community.csdn.net/Expert/topic/4117/4117567.xml?temp=.5976679
/*--下面的部分在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 @objreturnlberr:
exec sp_oageterrorinfo 0,@src out,@desc out
select cast(@err as varbinary(4)) as 错误号
,@src as 错误源,@desc as 错误描述
调用方法参看:
http://www.itrain.de/knowhow/sql/tsql/com/create.asp或者利用.net开发扩展存储过程,参看:
使用 C# 编写扩展存储过程
http://www.daima.com.cn/Info/3/Info20989/
非常感谢你 你说的非常对 在存储过程中调用dll确实如如你所说 但是
http://blog.csdn.net/aw511/archive/2005/08/07/447656.aspx
只能解决针对单独的表的的xml数据的问题 我的xml信息可能跟多个表相连 也就是说我的xml数据可能要插入到多个表中 而且数据的多少是不一定的
不知怎么解决 ?
谢谢
基本的方法也是将数据分别插入到对应的基本表中,而不是一次行插入,
所以你上面说的问题不好解决。建议还是改为对基本表的操作。