Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Непонятное поведение при прерывании Retieve'a / 3 сообщений из 3, страница 1 из 1
28.02.2008, 12:02
    #35160184
Guest01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятное поведение при прерывании Retieve'a
Уважаемые коллеги, вот пришла беда.
Всегда использовал схему прерывания 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
28.02.2008, 12:36
    #35160316
Гы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятное поведение при прерывании Retieve'a
Аффтор жжот )
обсуждалось ранее, поиск рулит ;), самому искать в падлу
...
Рейтинг: 0 / 0
05.03.2008, 10:59
    #35171976
Guest01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятное поведение при прерывании Retieve'a
Может быть, что автор и "ЖЖОТ", однако поиск ничего разумного не показал.

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


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