|
|
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
Поставщик внедряет у нас клиент-серверное ПО (Delphi+InterBase6.0). При неудачно заданных параметрах запроса результаты выборки можно ждать достаточно долго. В ответ на просьбу реализовать в интерфейсе кнопку "Остановить запрос", ответ - "Это невозможно, запрос находится неизвестно где, и т.д. и т.п.". Уместен ли вопрос (в общем случае, без учета конкретики) - действительно данное пожелание невозможно реализовать ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 11:52 |
|
||
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
Кажись разводят вас. Конечно программер должен знать - где что находиться, если конечно он писал данное приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 11:57 |
|
||
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
Можно это сделать, правда многопоточность разработчику вводить придёться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 12:09 |
|
||
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
Многопоточность тут не при чем :) Прервать можно, но это несколько нетрадиционно. Фактически запрос в IB/FB не прерывается даже при снятии коннекта, идет упорно до конца :) А так - http://www.ibase.ru/devinfo/generator.htm#extra ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 12:12 |
|
||
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
Извиняюсь конечно, но что-то я никак понять немогу - какая связь между генераторами и остановкой выполняемого на данный момент запроса???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 12:34 |
|
||
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
Прошу прощения - все понятно! (не полностью загрузилась страница - нет глючит) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 12:44 |
|
||
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
Roman Ignatiev: А ты представь что с этим запросом работает несколько клиентов, в результате отмены операции на любой машине они будут отменены и на остальных, в результате чего клиенты получат неполную информацию, даже не зная об этом!!!! В своих программах я запускаю запрос в оттдельном Thread-е и в случае отмены данного запроса пользователя просто убиваю поток. А насчет "Фактически запрос в IB/FB не прерывается даже при снятии коннекта, идет упорно до конца" я не полностью согласен, есть определенный timeout на выполнение запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 17:26 |
|
||
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
Если очень хочется использовать генераторы на несколько клиентов то можно изворотится так: Каждый бит соответствует клиенту, а значение 0 или 1 соответственно указывает прерывание пользователем запроса. Тогда запрос будет выглядеть: SELECT * FROM t WHERE GETBIT(GEN_ID(gen,:KOMP_NUMBER)=0, Перед выполнение запроса и при прерывании нужно устанавливать только соответствующий бит, не трогая остальных, т.е. 1. Получить значение генератора 2. Установить нужный бит 3. Установить новое значение генератора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 17:39 |
|
||
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
2vovan1 Там, если почитать, указаны пути для многопользовательской работы, и в том числе можно и биты, конечно, проверять, но не лучше ли считать диапазонами, не применяя GETBIT? А вот потоки убивать я бы не советовал. Чем, он же ждет результата? TerminateThread? Вот уж точно не надо, везде написано, что делает эта процедура. Да и рвать соединение с IB очень не рекомендуется. НАсчет таймаута - работает, по всей видимости, dummi packets, когда сервер обнаруживает, что клиент отвалился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 17:54 |
|
||
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
как вариант.... если большие и толстые запросы выполняются в ХП, то можно написать UDF, которая будет ловить сообщения клиента и сообщать проце о том что надо срочно завершить работу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 03:07 |
|
||
|
Прошу оценить специалистов по InterBase ...
|
|||
|---|---|---|---|
|
#18+
Сделать можно, но очень трудно и толку не принесет - глупая фича, идея фикс. Как я понимаю, копать надо в других направлениях: 1) Оптимизация запросов. Если в БД не десятки гигабайт, если это не самписный OLAP и сервер нe 166ММХ, то запросы должны выполняться нормально (о кнопке "остановка" подумать серьезно не плучится). Используйте порционную выдачу результатов и т.д. 2) Многопоточный User Interface - показывать чего-нибдуь вроде градусника или веселых картинок при торможении БД :) Кстати, что за софт? Какая компания? With best regards, Alexey Kovyazin ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 18:58 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32319232&tid=1579672]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 562ms |

| 0 / 0 |
