把wsh.run "bcp .....",true    做成一个函数,执行成功后返回TRUE,再truncate table 。

解决方案 »

  1.   

    我无法预知bcp是否执行完毕,因为它是个外部的系统程序,不返回任何值或者消息
      

  2.   

    我做了一个函数
    Public Function ShellX(ByVal strRun As String, _
                        ByVal AppWinStyle As VbAppWinStyle) As Double
    '用同步方式执行Shell    Dim hProcess As Long
        Dim rc As Long
        Dim Code As Long
        
        rc = Shell(strRun, AppWinStyle)
        hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, rc)
        Do
            GetExitCodeProcess hProcess, Code
            DoEvents
        Loop While Code = STILL_ACTIVE
        
    End Function
      

  3.   

    用同步的方法实现思路是对的,而且我感觉也是唯一可行的,不过具体实现函数不一而足,我的做法是通过SHELL取得进程ID,然后用WAITFOROBJECT等待该进程执行完毕,然后在往下走,这样可以省略掉楼上的DO  WHILE循环。
      

  4.   

    请问哪儿有OpenProcess API的声明?
    withstudy的方法能说具体点儿吗?谢谢,一定再加分!