日期:2014-05-17  浏览次数:20719 次

SQL Server 2008 R2 调用MSScriptControl.ScriptControl失败
在SQL Server 2000执行下面代码是可以返回COM对象的ID的

declare @intObject int
declare @intReturn int
declare @source varchar(255)
declare @description  varchar(255)

exec @intReturn=master.dbo.[sp_oaCreate] 'MSScriptControl.ScriptControl',@intObject out
--exec master.dbo.[sp_oasetproperty] @intObject,'Language','vbscript'
EXEC master.dbo.[sp_OAGetErrorInfo] NULL, @source OUT, @description OUT

select @intReturn,@intObject,@source,@description

但到了SQL Server 2008 R2/windows Server 2008 X64 就不能返回对象ID了
错误信息是 没有注册类 
那个有这样的环境测试一下

哎,升级一下数据库都这么多问题,晕死了,微软怎么老是弄这么多不兼容的东西了
今早好不容易解决了没有了xp_GetFileDetails的问题,现在又来这个

------解决方案--------------------
引用:
Quote: 引用:

还有就是,你的对应到clr程序集的函数的返回值类型,和传入参数类型,都是哪些数据类型呢

我就是使用MSScriptControl.ScriptControl做成一个标量函数传入一个字符串然后返回这个字符串的执行结果,用过java的Eval()函数就知道了,例如Eval('1+2*3+Sin(0.8)/Cos(0.3)')
公式可能很复杂的


是这样吗:


select 1+2*3+Sin(0.8)/Cos(0.3)
/*
7.75089363702218
*/

------解决方案--------------------
给你找了两个,你看看能用吗:

http://download.csdn.net/detail/ddrvos/3546118

http://download.csdn.net/detail/llllllssssss12345678/4864859
------解决方案--------------------
我认为是你的MSScriptControl.ScriptControl控件在SQL Server 2008 R2下面存在兼容性问题。