我的vb程序中需要调用一个oracle的存储过程,存储过程的执行大概1分钟左右,我想在存贮过程执行的过程中,在界面上显示一个信息框(textbox或label),内容就是“数据正在准备中......”之类的文字,怎样实现这个功能,使用多线程可不可以?最好给一个例子。谢谢!

解决方案 »

  1.   

    ado的connection对象可以支持异步执行
    adoconn.Execute strsql,,adasyncexecute
      

  2.   

    再声明adoconn对象的时候,
    dim withevents adoconn as adodb.connection
    adoconn有两个事件willexecute和executecomplete
    你可以在willexecute事件中判断source参数是不是你执行的存储过程.设置一个标志变量
    在executecomplete事件中根据标志变量来决定你要执行的操作
      

  3.   

    闪烁,可以搞个timer,在willexecute时间中,启动timer事件,在timer事件中修改文本框的前景色和背景色,就可以了.最后在executecomplete中停止timer
      

  4.   

    to rzty(阿中先生)
    //用doevents不就搞定了?
    用ado调用执行一个存储过程,就只有一条语句,怎么用doevents?
      

  5.   

    偶是小菜:请问一下,在VB中怎么调用ORACLE的存储过程?偶像调用SQLSERVER的存储过程一样调用,怎么出错呢?
      

  6.   

    Set comProc = New ADODB.Command
        With comProc
            .CommandText = "prc_salerpt001"
            .CommandType = adCmdStoredProc
            .ActiveConnection = gobjConnOra
            .Parameters.Append .CreateParameter(, adNumeric, adParamInput)
            .Parameters.Append .CreateParameter(, adVarChar, adParamInput, 16)
            .Parameters.Append .CreateParameter(, adNumeric, adParamOutput)
        End With