![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прерывание запроса [D5, IB6.x]
First_May © (2002-07-16 10:11:00)Подскажите пожалуйста, как можно выполнить запрос на выборку данных, чтобы его можно было бы прервать когда этого захочет пользователь.
Alexandr (2002-07-17 13:09:00) [1]да. Согласен.
Но ведь не смотря на СПИД, и другие болезни :) люди все равно тр@#ются.
Вывод понятен?
kaif (2002-07-17 12:52:00) [2]2 Alexandr © (17.07.02 07:29)
Есть такой старый анекдот (да простит меня модератор).
- Как уберечься от венерических заболеваний?
- Нужно надеть презерватив, затем замотать изолентой, сверху еще один презерватив. И главное - ни в коем случае не трахаться.
Alexandr (2002-07-17 07:29:00) [3]культура нужна.
Не нужно лезти в рабочую базу с запросом, который предварительно не был проверен на тестовой базе. Чтобы потом не было мучительно больно...
Fareader (2002-07-16 17:21:00) [4]2Anatoly Podgoretsky © (16.07.02 16:27)
кардинальное и очень оптимистичное решение проблемы
Anatoly Podgoretsky (2002-07-16 16:27:00) [5]Отрезать руку, затем вторую
kaif (2002-07-16 16:16:00) [6]Извини, Alexandr, я не знал, что разработчики IB ушли из проекта. Это многое меняет.
>2)Уродски сделанные базы надо переделывать.
Совершенно согласен. Но я работаю, как независимый разработчик и мне легко говорить. Многие, к сожалению, думают иначе...
Боюсь окончательно тебя разозлить, но ведь есть проекты (например, просто клиенты типа IBConsole или IBExpert), где юзверь (в данном случае юзверь и разработчик совпадают) руками запрос пишет. И вот, допустим, чел допустил декартово произведение или еще какую глупость (с кем не бывает, по невнимательности). Что же теперь бедняге прикажешь делать?
AlexGreG (2002-07-16 16:04:00) [7]Интересно, а с Ораклом можно такую штуку сотворить?
First_May (2002-07-16 13:52:00) [8]Спасибо всем, я кое что понял.
Alexandr (2002-07-16 13:38:00) [9]2kaif: Ну, блин, все в кучу смешал.
Ладно, пусть тут будет очередной диспут
1) SELECT .. WHERE ... IN (SELECT... WHERE ...IN (SELECT
такие запросы говорят о кривизне рук разработчика и это его личная проблема.
Кстати такой запрос также легко снимается генератором... О чем я и говорил
2)Уродски сделанные базы надо переделывать.
3) знаешь, пусть этот IB6.5 будет хоть трижды коммерческим, он лучше от этого не станет. Программы пишет не Borland , а конкретные разработчики, И те кто писал IB на заре IB6 перешли в проект Firebird, а в Борланде набрали новую команду для реанимации IB. Так что вот.
4) Существуют огромное количество багов, исправленных в Firebird по сравнению с IB, и существует огромное количество багов, не исправленных ни там ни там, а исправленных только в Yaffil.
Вообщем, на эту тему можно говорить до бесконечности...
kaif (2002-07-16 13:25:00) [10]2 Alexandr © (16.07.02 12:31)
Разумеется, я не хочу спорить с решениями, когда в логике ХП удается прервать запрос (кода эту ХП нормальные люди писали). Однако тут на форуме я часто вижу такие запросы мелькают:
SELECT .. WHERE ... IN (SELECT... WHERE ...IN (SELECT
и т. д. И такие вещи у людей по 2 часа работают, а не по 5 сек. И если Borland что-то сделал для несчастных, хотелось об этом подробнее узнать. :)
Не хочу показаться задавалой... Но ведь это правда! Плюс многие вообще вынуждены работать с базами, которые изначально уродски были сделаны...
А у IB6.5 больше шансов, так как это все же коммерческийпродукт. Ведь на коммерческие версии IB5.6 вроде нареканий было немного...
Alexandr (2002-07-16 13:12:00) [11]Видели мы IB6 и после этого смотреть на IB6.5 неохота.
2kaif: Ведь ты же уже на этом попадался... Помнишь, когда у тебя последнее соединение не отключалось от базы и ты его грохал? Чего там с базой было? а? Вот ты из соседнего коннекта прибьешь запрос, а у тебя sweep который на этом запросе был тоже прибьется, и кранты базе... Исправлено только Yaffil.
А мой способ с генераторами не ждет фетча - он в логику запроса залазит. Так что тут мне про фетч втирать ненадо...
kaif (2002-07-16 13:04:00) [12]Так там не запрос убивается, а извлечение данных на клиент. А это не то же самое. В большинстве случаев тяжесть запроса состоит не в вытягивании записей на клиент, а именно в обработке самого запроса.
Kaban (2002-07-16 12:56:00) [13]2 kaif © (16.07.02 12:54)
А ты читал все, что написано выше. там говориться о том,
>>что там можно убить запрос из соседнего потока...
kaif (2002-07-16 12:54:00) [14]А кто-нибудь уже работал с IB6.5 ?
Его разработчики уверяют, что там можно убить запрос из соседнего потока...
Alexandr (2002-07-16 12:31:00) [15]поток дасоздавать придется... Но при этом запрос прервется на сервере и при этом совершенно корректно, в отличие от варварского способа с прибитием потока.
У меня вот есть несколько тяжелых SP (это сложные отчеты и они выполняются дольше 5 секунд), так вот, я в них эту проверочку вставил и теберь как администратор переключаю генератор и все эти тяжелые запросы прерываются и юзеру сообщение выдается типа "запрос прерван администратором".
Это полезно бывает, когда несколько человек одновременно запустят по тяжелому запросу и сервер заклинит... (это особенно касается SuperServer и даже в Yaffil SuperServer с этим гораздо легче)
Fareader (2002-07-16 12:22:00) [16]Да действительно интересный и действенный способ прервать запрос со стороны сервера.
Johnmen (2002-07-16 12:21:00) [17]>Alexandr © (16.07.02 12:13)
>читать тут
> http://ib.demo.ru/devinfo/generator.htm
Нечто подобное я и предполагал....
Вот только чтобы установить(сбросить) значение ген-ра придется все равно создавать поток...:))))
Alexandr (2002-07-16 12:13:00) [18]читать тут
http://ib.demo.ru/devinfo/generator.htm
сколько раз уже говорили: "Читайте на ночь каждый день сайт WWW.IBASE.RU" там есть ответы на все вопросы, даже еще не заданные вами...
Kaban (2002-07-16 12:11:00) [19]так в примере естественно запрос не прерывается, а на базе этого примере вы ничего нового добавить не хотите, или вам нужно приподнести все готовенькое
First_May (2002-07-16 12:09:00) [20]Немного работал, но в это примере действительно происходит то, что я писал выше. А это мне не подходит.
Согласен с Johnmen, ведь я хочу просто узнать кто и как решает подобную задачу, а так отвечать просто не хорошо. :(