powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Непонятное поведение при прерывании Retieve'a
3 сообщений из 3, страница 1 из 1
Непонятное поведение при прерывании Retieve'a
    #35160184
Guest01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые коллеги, вот пришла беда.
Всегда использовал схему прерывания Retrieve'а и проблем не было.
Однако случилось.
Окружение:
OS: Windows XP 2002 SP 2
PB: Enterprise 9.0.3 Build 8836
DBMS: Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)
May 3 2005 23:18:38
Copyright (c) 1988-2003 Microsoft Corporation
Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
PB Driver: Native MSS Microsoft SQL Server

Задача: Прервать Retrieve
Есть окно. На окне лежит кнопка (cb_stop), datawidow (DW) и st_row

В DW есть аттрибуты: boolean ib_STOP и time it_Start
Далее код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
cb_stop.event click
  DW.ib_STOP = TRUE
end event

DW.event RetrieveRow
  st_row.text = string(row)
  if row =  1  then it_Start  = now()
  if ib_STOP then return  1  // Прервать retrieve
end event

DW.event RetrieveEnd
  long CS
  CS = SecondsAfter( it_Start, now() )
  messagebox( 'RetrieveEnd', 'Rows: '+string(rowcount) + '~r~nSeconds: '+string(CS))
end event

В DW кладу 'легкий' запрос
Select ... from Table1
Table1 'узкая' таблица 100,000 записей
Вызываю Retieve, нажимаю cb_Stop.
Retrieve прерывается, управление передается приложению.
Все идет в штатном режиме, как и ожидалось.

В DW кладу 'тяжелый' запрос ( select ... from ... left Join, ... group by ...)
Без прерывания Retrieve отрабатывает за 20 сек., возвращая 7000 записей.
Повторяю вызов. На 200ой записи нажимаю cb_Stop. Приложение зависает.
Счетчик записей (st_row) не обновляется. FETCH не идет (смотрел по трассе )
Через 19 сек. все отмирает. MessageBox выдает, что получено 200 записей за 19 секунд.
Создается впечатление, что не смотря на прерывание Retrive'a, сервер продолжает выполнять
запрос, хотя клиент уже не читает recordset.

Вопрос: Как победить эту ситуацию или, хоть понять, что происходит.
Заранее спасибо за любые отклики.
...
Рейтинг: 0 / 0
Непонятное поведение при прерывании Retieve'a
    #35160316
Гы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аффтор жжот )
обсуждалось ранее, поиск рулит ;), самому искать в падлу
...
Рейтинг: 0 / 0
Непонятное поведение при прерывании Retieve'a
    #35171976
Guest01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть, что автор и "ЖЖОТ", однако поиск ничего разумного не показал.

Увыжаемый "Гы", а не в падлу, не в лом, не в распалцовку вспомнить ключи поиска?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Непонятное поведение при прерывании Retieve'a
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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