不知为什么我在VB中做了一个公共子过程,但是很奇怪的是,我在两个FORM中传相同的参数,而在子过中得到的结果不同,比如我先做了一个共有变量,比如我在一个公共模块中先定义了:
PUBLIC TEST AS ADODB.RECODESET
PUBLIE TESTA AS ADODB.COMMAND
然后在另下标准模块中做了一个子过程
public sub testsub(aaa as string)
set test  = new adodb.recodeset
set testa = new adodb.command
存储过程(参数为TEST)
SET TEST = TESTA.EXECUTE
end sub然后我在两个不同的FORM中传两个相同的AAA的值,但是很奇怪的是,我在一个FORM中传AAA的值以后
m = TEST.RECODECOUNT
m的值就是 2
但在另一个FORM中传相同的AAA的值,而
m=test.recodecount 
m的值就是-1
求高手,我实在不明白是什么意思???

解决方案 »

  1.   

    给个样子(从建立连接后)

    dim m_cmd as new ADODB.Command
    dim m_rs  as new ADODB.Recordset
    with m_cmd
        .ActiveConnection=连接
        .CommandType = adCmdStoredProc
        .CommandText = "存储过程名"
        .Parameters.Append .CreateParameter("参数名", 参数类型, ,参数长度 ,参数值 )
        
        If m_rs.State = adStateOpen Then m_rs.Close
        Call m_rs.Open(m_cmd, , adOpenStatic, adLockBatchOptimistic(或其他锁定类型))
    end with
      

  2.   

    用SET TEST = TESTA.EXECUTE
    得到了行集,所以recodecount =-1