Зависание программы после вызова хранимой процедуры на сервере - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день! Столкнулся с проблемой следующего характера: Вызываю хранимую процедуру на SQL сервере. Всё хорошо - работает. Но, в момент её вызова основная форма программы зависает. Т.е. пишет не отвечает, нет возможности её перемещать. Поэтому если пользователь будет её использовать, то может подумать что все зависло и закрыть её. Чтобы это не произошло решил сделать ProgressBar работающий по таймеру.
Листинг программы
  1. Private Sub Timer1_Timer()
  2. If ProgressBar1.Value < ProgressBar1.Max Then
  3. ProgressBar1.Value = ProgressBar1.Value + 1
  4. DoEvents
  5. Else
  6. ProgressBar1.Value = 0
  7. DoEvents
  8. End If
  9. End Sub
Запускаю таймер по клику на Command. Все крутится до момента вызова хранимой процедуры. Код ниже
Листинг программы
  1. Private Sub Command1_Click()
  2. Timer1.Enabled = True
  3. Dim rs As ADODB.Recordset
  4. Dim cmd As ADODB.Command
  5. Set cmd = New ADODB.Command
  6. cmd.CommandTimeout = 20000000
  7. cmd.ActiveConnection = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Server=Сервер;Database=MyBase;Trusted_Connection=Yes"
  8. cmd.CommandType = adCmdStoredProc
  9. cmd.CommandText = "Хранимка"
  10. Set rs = New ADODB.Recordset
  11. rs.CursorLocation = adUseClient
  12. rs.CursorType = adOpenStatic
  13. rs.LockType = adLockReadOnly
  14. rs.Open cmd
  15. Timer1.Enabled = False
  16. End Sub
Про DoEvents я почитал и как понял, он больше подходит для циклов. Как мне поступить и сделать так, чтобы ProgressBar бегал, пока хранимка делается (минуты 2)? Заранее благодарю

Решение задачи: «Зависание программы после вызова хранимой процедуры на сервере»

textual
Листинг программы
  1. Public Declare Function CoInitialize Lib "ole32" (pvReserved As Any) As Long
  2. Public Declare Function CoUninitialize Lib "ole32" () As Long

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы