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

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

Прерывание запроса [D5, IB6.x]


Страницы:   1 2

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, ведь я хочу просто узнать кто и как решает подобную задачу, а так отвечать просто не хорошо. :(


Страницы:   1 2

Наверх

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