这是我写的存储过程
CREATE PROCEDURE  CallDllProc(@name varchar(100), @age int)
AS
BEGIN
declare @object int
declare @ErrorCode   int        
select @ErrorCode = @@Error                                    
if @ErrorCode = 0 
exec @ErrorCode = sp_OACreate 'EventCom.EventTest', @object 
Output
if @ErrorCode <> 0
BEGIN 
declare @src varchar(255)
declare @desc varchar(255)
exec sp_oageterrorinfo @object, @src out, @desc out  
select hr=convert(varbinary(4),@ErrorCode), source=@src, description=@desc 
exec sp_oadestroy @object 
return 
END exec @ErrorCode = sp_OAMethod @object, 'PrintInfo', @name, @age
exec sp_OADestroy @Object
RETURN
END
GO
其中exec @ErrorCode = sp_OACreate 'EventCom.EventTest', @object 调用一个我用C#写的com组件
namespace EventCom
{    [Guid("C3BA7B17-7024-4b2d-B263-F98062004439")]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
    public interface IEventHelper
    {
        [DispId(1)]
        void PrintInfo(string name, int age);
    }    [Guid("C66E4AA9-AC2E-4232-A6B6-AAB0BDD2B04A")]
    [ClassInterface(ClassInterfaceType.None)]
    public class EventTest : ServicedComponent, IEventHelper
    {
        public void PrintInfo(string name, int age)
        {        }
    }
}
调用的时候每次在用sp_OACreate创建com组件的时候都返回错误代码0x80131700,但是如果我创建的是另一些组件比如ADODB.Command.2.8的时候就没错,麻烦各位高手了。