Зависание программы после вызова хранимой процедуры на сервере - VB
Формулировка задачи:
Добрый день!
Столкнулся с проблемой следующего характера:
Вызываю хранимую процедуру на SQL сервере. Всё хорошо - работает. Но, в момент её вызова основная форма программы зависает. Т.е. пишет не отвечает, нет возможности её перемещать. Поэтому если пользователь будет её использовать, то может подумать что все зависло и закрыть её. Чтобы это не произошло решил сделать ProgressBar работающий по таймеру.
Запускаю таймер по клику на Command. Все крутится до момента вызова хранимой процедуры. Код ниже
Про DoEvents я почитал и как понял, он больше подходит для циклов. Как мне поступить и сделать так, чтобы ProgressBar бегал, пока хранимка делается (минуты 2)? Заранее благодарю
Листинг программы
- Private Sub Timer1_Timer()
- If ProgressBar1.Value < ProgressBar1.Max Then
- ProgressBar1.Value = ProgressBar1.Value + 1
- DoEvents
- Else
- ProgressBar1.Value = 0
- DoEvents
- End If
- End Sub
Листинг программы
- Private Sub Command1_Click()
- Timer1.Enabled = True
- Dim rs As ADODB.Recordset
- Dim cmd As ADODB.Command
- Set cmd = New ADODB.Command
- cmd.CommandTimeout = 20000000
- cmd.ActiveConnection = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Server=Сервер;Database=MyBase;Trusted_Connection=Yes"
- cmd.CommandType = adCmdStoredProc
- cmd.CommandText = "Хранимка"
- Set rs = New ADODB.Recordset
- rs.CursorLocation = adUseClient
- rs.CursorType = adOpenStatic
- rs.LockType = adLockReadOnly
- rs.Open cmd
- Timer1.Enabled = False
- End Sub
Решение задачи: «Зависание программы после вызова хранимой процедуры на сервере»
textual
Листинг программы
- Public Declare Function CoInitialize Lib "ole32" (pvReserved As Any) As Long
- Public Declare Function CoUninitialize Lib "ole32" () As Long
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д