Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Может что подскажите / 10 сообщений из 10, страница 1 из 1
15.07.2003, 12:19
    #32208142
Oleg_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может что подскажите
Может что подскажите. Проблема вроде не сложная.
По кнопке запускается таймер в котором обрабатывается ряд довольно сложных sql-запросов с минимальным интервалом. Теоретически есть кнопка которая останавливает выполнение этих запросов, выставляя timer.enabled:=false, но практически висят часы и кликнуть на эту кнопку не удается. Риторический вопрос - что делать? Если можно использовать потоки, то как?
...
Рейтинг: 0 / 0
15.07.2003, 12:20
    #32208146
Speaker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может что подскажите
Application.ProcessMessages?
...
Рейтинг: 0 / 0
15.07.2003, 12:24
    #32208153
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может что подскажите
не поможет. раз запущенна процедура таймер проверять не станет свойство enabled покуда не отработает событие. нужно самому, промеж скл запросов делать(конечно-же)
application.processmessages;
if (not timer.enabled) then
exit;
...
Рейтинг: 0 / 0
15.07.2003, 12:36
    #32208180
Oleg_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может что подскажите
Спасибо, но Application.ProcessMessages не помогает
...
Рейтинг: 0 / 0
15.07.2003, 12:38
    #32208186
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может что подскажите
Вообще говоря, он помогает да только не сильно. сделай отдельный поток. и убивай его по требованию пользователя. с целостностью данных сам разбирайся. хотя если это только чтение, то пофигу, конечно.
...
Рейтинг: 0 / 0
15.07.2003, 18:33
    #32208882
Oleg_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может что подскажите
2alex_k: Дополнительный поток сделал, но кнопку могу нажать только если опять-таки вставляю Application.ProcessMessages и то не всегда, может для потока нужно специально выставлять низкий приоритет или еще что-то...
...
Рейтинг: 0 / 0
15.07.2003, 18:59
    #32208902
shane54
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может что подскажите
Могу вот что сказать.
Имею дело с системой стоимостью за 250 000 $$$. Так вот, там хоть клиентская часть и не на Дельфи (Oracle Forms, если тебе это о чём то говорит), твоя проблема решена следующим образом. Чтобы не зависала клиентская часть, долгие запросы выполнены в виде jobs. Это серверные хранимые процедуры, которые запускаются как пакетные задания сразу после нажатия клиентом кнопки. НО!!! Они запускаются на сервере и на клиент передают только % сколько выполнились. Т.е. зависания никакого, всегда можно прерваться (если конечно серверная часть умеет обрабатывать соответсвующее исключение/нажатие кнопки).

P.S. Есть ли в твоей базе понятие хранимые процедуры и джобы - не знаю. У меня везде Оракл.
...
Рейтинг: 0 / 0
15.07.2003, 19:08
    #32208910
Oleg_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может что подскажите
Сам думал сделать хранимую, но там придется много переносить... Думал как проще. Потом запросы в потоке частично сами по себе хранимые, вызывающие другие хранимые. Могут наверно возникнуть сложности с вложенностью (база MSSQL Server 2000).
...
Рейтинг: 0 / 0
15.07.2003, 20:20
    #32208970
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может что подскажите
а операционка какая?
все пучком должно быть с потоками. твои селекты всеравно ведь сервером обрабатываются.
...
Рейтинг: 0 / 0
15.07.2003, 21:01
    #32209008
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может что подскажите
Действительно, на MS SQL лучше делать джобами, чем таймером.

Но если надо - свойство ADODataSet.ExecuteOption:=eoAsyncFetchNonBlocking

Не прерывается выполнение приложения
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Может что подскажите / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]