日期:2014-05-18  浏览次数:20434 次

[100分问题] 如何在SqlServer的存储过程中调用动态链接库中的函数
遇到一个问题,现在希望编写一个动态链接库,在我写的存储过程中调用其中的函数,作为存储过程的扩展。

我在网上Google了一下,好像例子基本上就一个,反复被N多网站引用。
试着按照它写了一下,DLL生成后,注册,都没问题。在存储过程中创建对象实例时,好像获取不到内容。

哪位能够提供一个参考的示例或者思路,多谢多谢。

------解决方案--------------------
如:你建了一个function为Gather(@sizeId varchar(4)),
在存储过程中,可写select sizeName=dbo.Gather(sizeId) from Sizes
------解决方案--------------------
不知道是不是你说的到处引用的那个
ref:http://community.csdn.net/Expert/topic/5517/5517905.xml?temp=.9901239
具体的问题也可以到sql版去问下
------解决方案--------------------
你说的是这个吗?

DECLARE @object int
DECLARE @hr int
DECLARE @return varchar(255)
DECLARE @src varchar(255), @desc varchar(255)


-- Create an object
EXEC @hr = sp_OACreate 'Scripting.FileSystemObject ', @object OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END

-- Call a method that returns a value.
EXEC @hr = sp_OAMethod @object, 'GetTempName ', @return OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END
PRINT @return

-- Destroy the object.
EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END