|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Имеется кнопочка "Старт" и кнопочка "Стоп". В "Старт" написан длинный код. Там куча UPDATEтов. Весь процесс занимает несколько минут. Нужно сделать так, чтобы, при нажатии на "Стоп", компьютер бы "вышел из скрипта", написанного в "Старт". Как это сделать? Хотя бы в общих чертах, плиизззз... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2006, 16:15 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
yield натыкать там где Старт и флажок проверять, который в Стоп взводится ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2006, 16:52 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Я вынес скрипт из "Старт" в event Timer (тот же принцип, что и yield ). Но это не помогло. Нельзя нажать на кнопку, пока все процессы не завершатся. Сейчас попробую с yield. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2006, 17:07 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Во время Update в БД интерфейс по-любому будет замораживаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2006, 17:40 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
ИвановННyield натыкать там где Старт и флажок проверять, который в Стоп взводится не помогло :( ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2006, 17:42 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Тогда SharedObject http://www.sql.ru/forum/actualthread.aspx?tid=308028 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2006, 18:31 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Я имел ввиду следующее: завести "instance" переменную boolean ib_is_stop В скрипте "Старт": Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
ib_is_stop = true Вроде должно работать ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2006, 18:42 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Конечно, пока какой-нибудь update не закончится, выйти не получится ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2006, 18:44 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
ИвановННКонечно, пока какой-нибудь update не закончится, выйти не получится По всей видимости выйти действительно не получается. Если процесс находится внутри UPDATE/SELECT, то нажать на кнопку нельзя физически, а между UPDATами нельзя практически (можно добавить между ними цикли с Yield, тогда можно будет остановить процесс, но в этом случае время выполнения скрипта значительно возрастает. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2006, 17:31 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Можно тогда так попробовать: сделать через shared object отдельный поток со своим коннектом перед началом всех update вычислить connection-id этого коннекта (select connection_property('number')) в отдельном потоке (shared object) передать connection-id в главный поток из shared object начать делать update после кождого update проверять SQLCode и если он не 0 то rollback - return на кнопке stop при помощи еще одного коннекта (главного потока) сделать drop connection connection-id; сам попробовал - работает ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 11:56 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Прошу прощения - никаких rollback. Просто "ConnectString='...,CommitOnDisconnect=no,...'" ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 12:04 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Проблема в том, что нельзя нажать на "СТОП" в то время, пока выполняется Update. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 12:41 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
с шаред объектом можно ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 13:39 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
если update в одном потоке, а "Стоп" в другом, то "Стоп" нажать можно при помощи Shared Object можно создать отдельный поток ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 13:44 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
ИвановННКак-то так: Два вопроса: 1. Какой версией PB Вы пользовались? 2. Как и к какой DB подсоединялись ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2006, 15:08 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
edmikeca ИвановННКак-то так: Два вопроса: 1. Какой версией PB Вы пользовались? 2. Как и к какой DB подсоединялись ? PB 6.5, MSSQL2000 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2006, 15:29 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Извиняюсь, но вопрос был к ИвановуНН. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2006, 15:41 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
Всем привет! Извиняюсь что вмешиваюсь ... но по опыту борьбы с SharedObject могу посоветовать: если у Вас PB 6 (6.5) не важно главное что ниже 7, то можно делать DLL А если PB 7,8,9 (10-ку не проверяли), то ТОЛЬКО PBD!!! WBR A.Danilov ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2006, 16:46 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
PB 9.0.1.7275 ASA 8.0.2.4476 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2006, 10:55 |
|
Прерывание процесса.
|
|||
---|---|---|---|
#18+
_Danila_Извиняюсь что вмешиваюсь ... но по опыту борьбы с SharedObject могу посоветовать: если у Вас PB 6 (6.5) не важно главное что ниже 7, то можно делать DLL А если PB 7,8,9 (10-ку не проверяли), то ТОЛЬКО PBD!!! Скажу честно (С)ВВП - я советую ни при каких обстоятельствах и версиях PB не использовать сборку в DLL. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2006, 14:44 |
|
|
start [/forum/search_topic.php?author=MihMat&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 9764ms |
total: | 9975ms |
0 / 0 |