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