调用存储过程代码如下:设置数据库连结
  Set cn = New ADODB.Connection
  cn.ConnectionTimeout = 60
  cn.Provider = "sqloledb"
  cn.Properties("Data Source").Value = gaSqlSrv
  cn.Properties("Initial Catalog").Value = gaOldSqlBase
  cn.Properties("Integrated Security").Value = "SSPI"
  cn.CursorLocation = adUseClient
  cn.Open
  Set rs = New ADODB.Recordset
   
 设置要执行的存储过程的相关参数
  cmm.ActiveConnection = cn                设置连接
  cmm.CommandText = "sp_income_deal_report"        设置要执行的存储过程名称
  cmm.CommandType = adCmdStoredProc
  cmm.CommandTimeout = 0                         
 删除已添加的存储过程
  For param_num = (cmm.Parameters.Count - 1) To 0 Step -1
      cmm.Parameters.Delete (param_num)
  Next param_num  Set param_tmp_date = cmm.CreateParameter("v_slmt_date", adVarChar, adParamInput, 8)
  cmm.Parameters.Append param_tmp_date
 传入存储过程参数,执行存储过程
   tmp_data = CStr(Format(Calendar1.Value, "yyyymmdd"))
   param_tmp_date.Value = tmp_data
   cmm.Execute请问各位前辈:
  这种调用存储过程的方式如何判断存储过程何时结束?
    先谢了!!!

解决方案 »

  1.   

    我是业余的,没看代码,如果是我做,在代码运行前后,能记录下系统时间,再相减啊!
    曾做过一倒txt数据,后将时间差反映在页面上
      

  2.   

    “何时结束”是什么意思?
    vb执行存储过程都是同步执行,即vb在存储过程完成之前是不会执行后面的代码的,那么在
    cmm.Execute后面的语句开始执行时就是存储过程结束的时间,如:
    cmm.execute
    msgbox "存储过程执行完毕"
      

  3.   

    这个基本上是无法判断的.当你调用存储过程以后.此后的处理已经交付给数据库引擎,完成操作后,返回结果.
    不过你可以试着使用ADO的事件,我记得里面有个事件是进度变化触发的.只不过你需要先将ADO设置成异步模式,这样处理起来估计会很麻烦.