我写了一个COM+组件,放在系统组件服务中了,其中写了几个测试方法返回Intger,string,客户端调用都没有任何问题,但是我如果写返回Variant类型就无法编译了(&H80004005 错误),不知道原因我想通过一个Function返回给调用者一个Recordset,不知道该如何实现呀,请高手们指教呀!

解决方案 »

  1.   

    把你代码贴出来看看?我们的COM+应用程序所有交互,都通过Variant型
      

  2.   

    public function 方法名(参数表) as ADODB.Recordset
    ...
    end function不就结了
      

  3.   

    比如我在对象中随便加一个方法A返回值设置为string,只删除代码本身还去不掉方法A,一编译就出现&H80004005的错误,不知道如何正确删除这个方法。wushu(浪子) 说得没错,我已经调试出来了,稍后把我的代码帖上来……
      

  4.   

    代码示例:对象名称:MyVB_COM.COMClassCOM+组件服务器中方法TestPublic Function Test() As Recordset
        Dim cn As New Connection
        Dim rs As New Recordset
        cn.Open "driver={SQL Server};server=localhost;database=pubs;uid=sa;pwd="
        rs.CursorLocation = adUseClient
        rs.CursorType = adOpenStatic
        rs.LockType = adLockReadOnly
        rs.ActiveConnection = cn
        rs.Open "select * from Employee", cn
        Set Test = rs
    End Function
    客户端EXE调用代码
    Private ox As New MyVB_COM.COMClass
    Private rs As New RecordsetPrivate Sub Form_Load()
        Set rs = ox.Test()
    End Sub
      

  5.   

    你不应该用Variant型!!!
    用object就可以!
    当然如果你确切知道返回recordset类型,可以直接返回recordset啊!veryhappy(wx.net)说的没有错,不过记得引用ado就可以了
      

  6.   

    http://www.xc-soft.com/docs/3tieranddatabase.htm
    返回recordset类型就行了