存储过程:
create or replace procedure test2 is
 
begin
    insert into test1 values('asdf','fff');
    commit;end test2;
----------------------------------------------------------------
dim conOracle
set conOracle=Server.createObject("ADODB.Connection")
conOracle.Open "Provider=MSDAORA.1;Data Source=db;User Id=11;Password=222"Set rs= Server.CreateObject("ADODB.Recordset")rs.open "select * from t_smbookuser",conOracle,1,1do while not rs.eof
   response.write rs(0)&"<br>"
   rs.movenext
loop                          //能正常读出数据rs.closeSet comOracle= Server.CreateObject("ADODB.Command")
comOracle.ActiveConnection=conOracle
comOracle.CommandText="test2"      //test2为存储过程名
                                   //改为comOracle.CommandText=test2也不行
comOracle.CommandType=adCmdStoredProc
comOracle.ExecuteconOracle.close
set conOracle=nothing
----------------------------------------------------------------ADODB.Command 错误 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。请问是什么问题??????

解决方案 »

  1.   

    这是ASP的用法???看看下面的
    Dim cn As ADODB.Connection
    Dim RSCOM As ADODB.Command
    Set cn = New ADODB.Connection   
    Set RSCOM = New ADODB.Command
        
        strcon = "provider=msdasql;dsn=yourDSN name;uid=youruserid;pwd=yourpassword;"
        
        With cn
            .ConnectionString = strcon
            .CursorLocation = adUseClient
            .Open
        End With
       
       
        With RSCOM
            .ActiveConnection = cn
            .CommandText = "INSERTTOTEST"
            .CommandType = adCmdStoredProc
            .Parameters.Append .CreateParameter(, adInteger, adParamInput)
            .Parameters.Append .CreateParameter(, adVarChar, adParamInput, 50)
            .Parameters.Append .CreateParameter(, adVarChar, adParamInput, 31474)
        End With    RSCOM(0) = QID
        RSCOM(1) = QNAME
        RSCOM(2) = QRESUME
        RSCOM.Execute
        Set RSCOM = Nothing
      

  2.   

    你应该带个参数,比如你在sqlplus里执行你的存储过程的话首先要var id number;然后是
    exec test(:id);才能正确执行,所以我想在VB里应该带参数执行存储过程才行,试试!