具体是用SHELL 调用一个BATCH后来处理一段ORACLE PROCEDURE(由于是DB LINK,CLIENT端不能执行,只能在服务器的SQLPLUS下运行该PROCEDURE)。该过程将几个表的数据从另一个服务器导入到我的服务器,我要做的就是希望在数据导入进行的时候,程序能够暂时停止,直到数据导入完毕后,才进行后面的程序(后面的程序要用到这些导入的数据)。有什么的好的方法吗?最好有代码示例,这方面我不太熟!
解决方案 »
- 如何使VB中的Command控件组
- 退出页面时报错 OCX
- 怎么控制TextBox中文字的垂直对齐方式??
- 100年前,全世界都认为汉语是婴儿语(转帖)
- 针式打印机和喷墨打印机有什么区别
- 小弟在这里求各位高手了,帮助我解决我的问题吧,圣诞节你们一定会有一个接到圣诞老人的祝福的!!
- ComboBox控件触发事件
- 调整scaleMode属性是否只能一个form一个form的处理.能否对一个工程一下子处理了,还有大家对scaleMode选用哪个单位
- 关于控件adodc的refresh方法
- 150分征解... MsComm控件通讯?
- 关于findwindow函数的问题
- VB6.0中文版中Spread3.0控件输入变成乱码
' 放到标准模块中就可以窗体模块中调用了。Option ExplicitPrivate Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Const SYNCHRONIZE = &H100000
Const WAIT_TIMEOUT = &H102&' 以同步方式运行另一个程序, 该程序运行结束后才执行函数后面的语句
' AppName 为执行应用程序的文件名, ShowWindow 为窗口的显示方式
Function ShellForWait(ByVal AppName As String, Optional ByVal ShowWindow As VbAppWinStyle = vbMinimizedFocus) As Boolean
Dim ID As Long, hwnd As Long, ret As Long
On Error Resume Next
ID = Shell(AppName, ShowWindow)
If ID > 0 Then
hwnd = OpenProcess(SYNCHRONIZE, 0, ID)
If hwnd <> 0 Then
Do
ret = WaitForSingleObject(hwnd, 0)
DoEvents
Loop While ret = WAIT_TIMEOUT
CloseHandle hwnd
ShellForWait = True
Else
ShellForWait = False
End If
Else
ShellForWait = False
End If
End Function
这么晚了还在努力工作
呵呵学习学习
hProcess As Long
hThread As Long
dwProcessid As Long
dwThreadID As Long
End Type
Private Type STARTUPINFO
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Const STARTF_USESHOWWINDOW = &H1
Private Const SW_HIDE = 0
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Declare Function CreateProcessA Lib "kernel32" ( _
ByVal lpApplicationName As Long, _
ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal _
lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal _
dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal _
lpCurrentDirectory As String, lpStartupInfo As STARTUPINFO, _
lpProcessInformation As PROCESS_INFORMATION) As Long
Private Const INFINITE = -1&
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Sub Command1_Click()
Dim cmdLine As String
Dim workDir As String
Dim NameOfProc As PROCESS_INFORMATION
Dim NameStart As STARTUPINFO
Dim returnValue As Long
cmdLine = "c:\winnt\system32\notepad.exe"
workDir = "c:\winnt\system32" NameStart.cb = Len(NameStart)
NameStart.dwFlags = STARTF_USESHOWWINDOW
NameStart.wShowWindow = SW_HIDE
returnValue = CreateProcessA(0&, cmdLine$, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, workDir$, NameStart, NameOfProc)
returnValue = WaitForSingleObject(NameOfProc.hProcess, INFINITE)
End Sub