JSP代码:
par1 = form.getInsurCode();        par2 = form.getSocTermBegin();        par3 = form.getSocTermEnd();        sql = "{call pkg_soc_touchquery.sp_soc_touchquery(?,?,?,?)}";        Class.forName("oracle.jdbc.OracleDriver");        conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.111.1:ora", "user1", "pass1");        conn.setAutoCommit(false);        CallableStatement stmt = conn.prepareCall(sql);        stmt.setString(1, par1);        stmt.setString(2, par2);        stmt.setString(3, par3);        stmt.registerOutParameter(4, -10);        stmt.executeQuery();转换的ASP代码:
Const CONNECT = "Provider=MSDAORA.1;Data Source=11111;User ID=user1;Password=pass1"

Dim cn, rs, cmd, param
Dim SQL set cn = Server.CreateObject( "ADODB.Connection" )
cn.Open CONNECT SQL = "{call pkg_soc_touchquery.sp_soc_touchquery(?,?,?, {resultset 0, p_cursor})}"
set cmd = server.CreateObject ("ADODB.Command")
with cmd
set .ActiveConnection = cn
    .CommandText = SQL
    .CommandType = 1 'adCmdText
    'Pass in 0 to retrieve all of the records
    set param = .CreateParameter("as_InsurCode", 129 , 1 , 8 , "6000002")
    .Parameters.Append param
    set param = .CreateParameter("as_DateBegin", 129 , 1 , 10 , "200504")
    .Parameters.Append param
    set param = .CreateParameter("as_DateEnd", 129 , 1 , 10 , "200510")
    .Parameters.Append param
end with

set rs = server.CreateObject ( "ADODB.Recordset" ) 
set rs = cmd.execute
返回-1啊!不知问题出在哪了?

解决方案 »

  1.   

    估计是SQL的问题,下面是一个调用方法例子:dim sp_common
    Set sp_common = Server.CreateObject("ADODB.Command") 
     with sp_common      
      .ActiveConnection = conn  
      .CommandText = "cd_update_log"  ''''存储过程名,参数在下面声明使用
      .Parameters.Append .CreateParameter("@inputre", adVarChar, adParamInput,50,"联通.Ye")
      .Parameters.Append .CreateParameter("@msg", adInteger, adParamOutput)
     .execute
     end with 
      

  2.   

    还有一种方法:
    dim str_ora
    dim objconn_ora
    str_ora = "Driver={Microsoft ODBC for Oracle};Server=ora192;uid=dwuser;pwd=family.samsung.com.cn"
    set objconn_ora = server.CreateObject("adodb.connection")
    objconn_ora.connectionstring = str_ora
    objconn_ora.CursorLocation = 3
    objconn_ora.opendim strsql
    set rs1 = server.CreateObject("ADODB.RecordSet")
    strsql = "{call pck_as.allsfc({resultset 90000, product_id, serial_no, buy_date})}"
    set objcomm1 = server.CreateObject("adodb.command")
    objcomm1.activeconnection = objconn_ora
    objcomm1.commandtype = 1
    objcomm1.commandtext = strsql
    set rs1 = objcomm1.execute
    while not rs1.eof
    response.Write(rs1(0) & "|" & rs1(1) & "|" & rs1(2) & "|<BR>")
    rs1.movenext
    wend