|
Выполнение в фоновом режиме
|
|||
---|---|---|---|
#18+
Как сделать, чтобы процедура выполнялась в фоновом режиме и не вешала приложение на несколько минут. Процедура это подключение к удаленному SQL серверу через интернет. Как сделать, чтобы пока она выполнялась можно было делат что-то еще в данном приложении. Например открыть еще форму и вбивать в ней текст. Private Sub Command1_Click() On Error GoTo error Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.Open "Provider=SQLOLEDB.1;Password=qwerty;Persist Security Info=True;User ID=sa;Initial Catalog=northwind;Data Source=213.189.220.105,8080" rs.Open "Select EmployeeID from employees", cn, adOpenStatic, adLockReadOnly Set VSFlexGrid1.DataSource = rs Exit Sub error: MsgBox "Can't establish connection to SQL server. Try again later" + Err.Description End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2003, 13:19 |
|
Выполнение в фоновом режиме
|
|||
---|---|---|---|
#18+
рекордсет может работать асинхронно - смотри параметры в справке. В этом случае он может генерить события Progress, перезватывая его ты будешь знать, как идут дела. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2003, 13:49 |
|
Выполнение в фоновом режиме
|
|||
---|---|---|---|
#18+
1. Событийное управление реализуется только для объектов, объявленных with Events. Создайте свой класс, в который поместите нечто подобное: Код: plaintext 1. 2. 3.
2. Подключитесь к серверу, задайте параметры cmd и cmd.Parameters.Refresh 3. выполните команду и направьте результаты её работы в рекордсет: Код: plaintext 1.
4. Состояние выполнения команды перехватывайте обработчиками событий: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
5. Эти события - собственность класса, а приложение должно использовать свои обработчики, вызываемые (возбуждаемые) отсюда по имени (RsDone, например). 6. Высокоуровневые классы-посредники (типа DataSource) маскируют многие вещи, поэтому целесообразно на этапе отладки от них отказаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2003, 15:22 |
|
|
start [/forum/topic.php?fid=60&msg=32247713&tid=2170850]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 239ms |
total: | 371ms |
0 / 0 |