就是asp的Server.CreateObject("ADODB.Connection")传给用vb写的asp组件.出问题了.:(vb中:
Public Function test(byref conn as Variant )
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.Open "select * from table", conn, 1, 1, 1
    rs.Close
    Set rs = Nothing
End Functionasp中: 
<%
...
Set db_conn = Server.CreateObject("ADODB.Connection")
dim t
set t=Server.CreateObject("V.A")
response.write t.test(db_conn)
...
%>提示:
ADODB.Recordset 错误 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

解决方案 »

  1.   

    帮帮我啊.共有三个这个帖.如果解决.所有分数分放了.
    http://expert.csdn.net/Expert/topic/2923/2923572.xml?temp=.4168817
    http://expert.csdn.net/Expert/topic/2923/2923561.xml?temp=.9196741
    http://expert.csdn.net/Expert/topic/2923/2923553.xml?temp=.9119226
      

  2.   

    我试过,是可以用的
    Public Function test(byref conn as Variant )
    你改成 
    Public Function test(byval conn as Adodb.Connection )rs.Open "select * from table", conn, 1, 1, 1
    改成
    rs.Open "select * from table", conn, 1, 1另外vb程序要引用Adodb还有就是你的test根本没返回值,用Response.write 是会出错的
      

  3.   

    Public Function test(ByVal conn As ADODB.Connection)
        Dim rs As ADODB.Recordset
        Set rs = New ADODB.Recordset
        rs.Open "select * from table", conn, 1, 1
        rs.Close
        Set rs = Nothing
    End Functionasp中还是提示错误:
    ADODB.Recordset 错误 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。 /ok.asp,行9 ASP 中我是这样使用的:
    <%
    Set db_conn = Server.CreateObject("ADODB.Connection")
    db_conn.Open "driver={SQL Server};server=127.0.0.1;uid=sa;pwd=;database=db;"dim V
    set V=Server.CreateObject("V.A")
    call V.test(db_conn)
    set V=nothingdb_conn.close
    set db_conn=nothing
    %>
      

  4.   

    把byval 改为byref或者去掉试试
      

  5.   

    改了.还是不行.好像asp传进来的conn就不能用.但在asp中createobject一个rs就可以用.请各位大侠帮我啊!5555555
      

  6.   

    我刚才帮你测试了一下,看看我的代码,已经通过测试
    Public conn As New ADODB.Connection
    Private Sub Command1_Click()
        
        Command1.Caption = test(conn)
        
    End SubPrivate Sub Form_Load()
    connstr = "driver={SQL Server};server=Leisang;uid=sa;pwd=;database=0577fun;"
    conn.ConnectionString = connstr
    conn.OpenEnd Sub
    Private Function test(ByVal conn As ADODB.Connection) As String
        Dim rs As New ADODB.Recordset
        rs.Open "select * from CoNews ", conn, 1, 1
        test = rs.RecordCount
    End Function
      

  7.   

    你这样写好像没有起到是么作用???
    rs.Open "select * from CoNews ", conn, 1, 1
    改成
    rs.Open strSql, conn, 1参考
    使用组件封装数据库操作(二)
    http://www.csdn.net/develop/read_article.asp?id=22628
    使用组件封装数据库操作(一)    
    http://www.csdn.net/develop/read_article.asp?id=19214