|
|
|
Как избежать от неотвечания на события :)
|
|||
|---|---|---|---|
|
#18+
При нажатии на кнопку запускается запрос, прога берет из грида и кидает в эксель. И в это-же время выходит окошка типа "Подождите..." и в этой формочке есть progress bar. Так вот при нажатии на кнопку зароса сам запрос обрабатывается но изменение progressbar'а не отображается. И вообще на этой "подождите"-форме ни какие графические изменения не отображаются во время выполнения того запроса. По моему VB отдает все ресурсы машина на обработку первого запроса а события информативной формы не обрабатыватся в это время. Я раньше где-то на каком-то форуме видил такой код на VB если его написать на первую строку процедуры нажатию кнопки то во время выполнения какой-то долгой функции прога будет реагировать и на другие события. Вот тока вспомнить не могу....:( Может кто подскажет Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 08:59:46 |
|
||
|
Как избежать от неотвечания на события :)
|
|||
|---|---|---|---|
|
#18+
вероятно поможет асинхронный запрос т.е. надо создать объект типа ADODB.Command и сним поработать Код: plaintext 1. 2. 3. 4. 5. 6. 7. и потом отлавить когда запрос закончит свою работу и выполнить необходимые действия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 09:15:24 |
|
||
|
Как избежать от неотвечания на события :)
|
|||
|---|---|---|---|
|
#18+
да нет с запросом все впорядке я так и работаю с ним. Код: plaintext Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 09:20:43 |
|
||
|
Как избежать от неотвечания на события :)
|
|||
|---|---|---|---|
|
#18+
почему-то и это не помогает...:( вот код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Помогите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 10:08:25 |
|
||
|
Как избежать от неотвечания на события :)
|
|||
|---|---|---|---|
|
#18+
Если долго выполняется CopyFromRecordset, то тут увы ничего не поделаешь. Разве что пытаться реализовать мнгопоточную обработку, т.е. в одном потоке показывать форму а в другом высти обработку. Но реализация многопоточности на VB это гемор тот еще. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 12:50:37 |
|
||
|
Как избежать от неотвечания на события :)
|
|||
|---|---|---|---|
|
#18+
Я для этих целей (только копипрование шло из Excel в Access) разбивал выборку на части (1000 строк за раз) и выполнял её в цикле, отображая прогресс исполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 13:29:05 |
|
||
|
Как избежать от неотвечания на события :)
|
|||
|---|---|---|---|
|
#18+
а я пошёл другим путём: создал ActiveX exe, который умеет progres-bar'ом управлять и перед вызовом "длинного" процеса его запускаю та же самая многопоточность, но реализована абсолютно безгеморно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 18:50:34 |
|
||
|
Как избежать от неотвечания на события :)
|
|||
|---|---|---|---|
|
#18+
2 Dmitry Biryukov вот интересно нафиг нужен прогресс бар если процесс не дискретный. Динамику чего он будет отображать? В таком случае можно AVI показывать, типа "работаю барин, погодь с недельку". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 19:13:40 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32910093&tid=2168229]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
92ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 414ms |

| 0 / 0 |
