Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прерывание выполнения запроса [D6, MSSQL]


Страницы:   1 2

NAlexey ©   (2004-07-02 09:03:00) 

Хотелось бы реализовать нечто подобное как в Query Analyzer, где возможно прервать запрос во время его выполнения. Для этого запускаю запрос в отдельном потоке. Но вот прервать как раз его не получается. Terminate := True; не помогает. Ну это и понятно, решал ли кто такую задачу? Если да, то какой подход необходимо использовать?


Sandman25   (2004-07-02 10:57:00) [21]

[13] Курдль ©   (02.07.04 10:49)

Знаете, у нас на старой работе тоже так сначала было, что запросы обкатывались на полупустой базе с каким-нибудь миллионом записей. А через год звонил заказчик и жаловался, что запросы стали притормаживать.


Курдль   (2004-07-02 10:49:00) [22]


> Соловьев ©   (02.07.04 10:38) [11]
> такое ощущение что Вы пишете программы без ошибок, причем
> сразу с ТЗ :)

Дык я пишу программы на практически чистой базе. Это потом она наполняется и тестируется.
А запросы обкатываю средствами СУБД, прежде чем пихать в прогу.
Слабые места БД определяются еще на этапе ТЗ, когда заказчик заявляет, типа: "У нас будет 1000 операций в день". Тогда становится ясно, что НД придется ограничивать по каким-то критериям, прежде, чем передавать на клиента.

NAlexey ©   (02.07.04 10:35) [9]
>Хм... Предположим я в программу вставляю билдер запросов, хочу сделать механизм применяющийся в Query Analyzer.


Это для "программируемых отчетов", или чего-то типа того?


dimm22   (2004-07-02 10:42:00) [23]


> Конечно это все хорошо, а по существу?

Если хочешь прервать выполнение потока, то Suspend делай ему, негодяю :-)


> >А где Вы видели запрос, который выполняется 30 секунд?


Ну у меня есть несколько. И что?


Соловьев   (2004-07-02 10:38:00) [24]


> [8] Курдль ©   (02.07.04 10:34)

такое ощущение что Вы пишете программы без ошибок, причем сразу с ТЗ :)
Бывает и дольше. Какой-нибудь отчет или поиск может и дольше выполнятся чем 30 сек.


Sandman25   (2004-07-02 10:37:00) [25]

>А где Вы видели запрос, который выполняется 30 секунд?

Счастливый человек. Мне приходилось заниматься оптимизацией ХП из 1000+ строк, чтобы она работала 5 минут вместо 15...


NAlexey   (2004-07-02 10:35:00) [26]

>Курдль ©   (02.07.04 10:26) [5]
Хм... Предположим я в программу вставляю билдер запросов, хочу сделать механизм применяющийся в Query Analyzer. Я злоупотребляю серверной логикой? По моему озвучил это в самом вопросе.
Конечно это все хорошо, а по существу?


Курдль   (2004-07-02 10:34:00) [27]


> so_well   (02.07.04 10:32) [6]
> ну если запрос выполняется секунд 30, то, наверное, логично
> дать возможность юзверю прервать его если он передумал его
> запускать

А где Вы видели запрос, который выполняется 30 секунд?
(Я мож чего-то не догоняю... Извините, я никогда не работал с MS SQL).


dimm22   (2004-07-02 10:34:00) [28]

Чё то несовсем понял, где должен прерываться запрос. Уже в готовом приложении или при разработке приложения, в том же IbExpert'e например?


> Для этого запускаю запрос в отдельном потоке. Но вот прервать
> как раз его не получается. Terminate := True;


Насчёт прерывания исполнения потока, то тут нужен Suspend.


so_well   (2004-07-02 10:32:00) [29]

ну если запрос выполняется секунд 30, то, наверное, логично дать возможность юзверю прервать его если он передумал его запускать


Курдль   (2004-07-02 10:26:00) [30]

Я, конечно, не гений - только учусь... Прошелся по базарчику - спросил еще пятерых разработчиков БД-ориентированных проектов.
Никто не сознался, что была нужда отменить запрос.
Видимо такие проблемы возникают у тех, кто злоупотребляет серверной логикой...


Соловьев   (2004-07-02 10:21:00) [31]


> [3] Курдль ©   (02.07.04 10:18)

значит Вы или гений, или запросы у Вас типа селект из одной таблицы. Всякое бывает когда идет разработка. Нормальная проблема.
В ФБ можно снять запрос с помощью генератора и если этот запрос запускается в виде ХП. Может можно такое сделать и в MS SQL, а может там для этотго конечно есть средства.


Курдль   (2004-07-02 10:18:00) [32]


> NAlexey ©   (02.07.04 10:12) [2]
> А что, ты считашь что это абсурдная задача?

Пытаюсь понять непонятное. За всю мою "практику" ни разу не возникало необходимости прервать запрос.


NAlexey   (2004-07-02 10:12:00) [33]

>Курдль ©   (02.07.04 10:06) [1]
А что, ты считашь что это абсурдная задача?


Курдль   (2004-07-02 10:06:00) [34]


> решал ли кто такую задачу?

А зачем, позвольте спросить, создавать такой запрос, чтобы потом же его и прерывать???


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо