Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Ошибка при нескольких retrieve одновременно / 13 сообщений из 13, страница 1 из 1
29.12.2008, 12:23
    #35739474
vovan_z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
В окне происходит retrieve нескольких DW.
И какой-то retieve происходит тогда когда другой еще не закончился.
возникает ошибка: Only the cancel command is allowed when the response from the server is pending
Как проверить идет ли в данный момент retrieve?понятно что можно в event retrievestart взводить флаг и event retrieveend снимать. Но может есть стандартные средства для этого?И как лучше организовать цикл ожидания завершения retrive? что бы он его не затормозил.
спасибо.
...
Рейтинг: 0 / 0
29.12.2008, 14:25
    #35739847
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
По-идее второй ретрив должен начаться только после завершения первого (если не делать каки-то специальных телодвижений). Так что если просто написать
Код: plaintext
1.
dw_1.Retrieve()
dw_2.Retrieve()
, то будет работать, как Вам надо.
Можно запускать второй ретрив в событии retrieveend первого (но в это событие без надобности лучше ничего не сувать).
...
Рейтинг: 0 / 0
29.12.2008, 15:00
    #35739925
vovan_z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
у меня вызов retrieve происходит из event rowfocuschanged. Мне надо что бы некоторые datawindow обновлялись именно при изменении строки главного datawindow
...
Рейтинг: 0 / 0
29.12.2008, 18:28
    #35740459
maxATC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
vovan_zу меня вызов retrieve происходит из event rowfocuschanged. Мне надо что бы некоторые datawindow обновлялись именно при изменении строки главного datawindow
Подскажи администратору сервера на котором стоит БД к которой твой клиент подключается, может он бедный ищет, что случилось с производительностью, ему очень поможешь, только анонимно, а то убьет. И смени EVENT на другой но не rowfocuschanged куда ставишь retrieve .
...
Рейтинг: 0 / 0
29.12.2008, 23:14
    #35740699
ZhV
ZhV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
vovan_zу меня вызов retrieve происходит из event rowfocuschanged. Мне надо что бы некоторые datawindow обновлялись именно при изменении строки главного datawindow

Нормальный подход.
Аналогичные алгоритмы приведены в CodeExample от Sybase - только там это называется Master/slave или Master/Detail - когда смена позиции курсора на master-datawindow переопределяет retrieve-парметры для подчиненного. При необходимости это может быть не только rowfocuschanged , но itemfocuschanged или itemchanged...

Вот только по каким-то причинам, кажется чисто шаманским - на само событие типа <*>changed ничего громоздкого вешать не рекомендуется.
Лучше на этом же datawindow создать user event вида ue_post<*>changed (при необходимости - с заданными параметрами) , запустить его асинхронно в post режиме из стандартного change-event-а

This.POST event ue_<*>changed (...)

А нужный вам код уже разместить в этом ue_<>changed
...
Рейтинг: 0 / 0
30.12.2008, 09:36
    #35740914
maxATC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
ZhV,

Совершенно согласен, так и поступить.
...
Рейтинг: 0 / 0
30.12.2008, 09:51
    #35740933
vovan_z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
в rowfocuschanged вызов функции в кторой retrieve выполняется с POST. Почему то показалось это логичным, вот и написал. Сейчас POST убрал, все заработало без ошибок!Странно почему из-за него был такой эффект.
Всем спасибо.
...
Рейтинг: 0 / 0
30.12.2008, 11:50
    #35741173
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
vovan_zв rowfocuschanged вызов функции в кторой retrieve выполняется с POST. Почему то показалось это логичным, вот и написал. Сейчас POST убрал, все заработало без ошибок!Странно почему из-за него был такой эффект.
Всем спасибо.

Возможно это связано с тем, что во время retrieve отрабатывают события retrievestart/retrieverow, а заодно с ними и все в что положено в очередь событий через POST.
...
Рейтинг: 0 / 0
02.04.2009, 17:35
    #35909111
dakota97
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
Окно с кучей обращений к базе. Возникает ошибка:
Only the cancel command is allowed when the response from the server is pending
как то можно настроить соединение чтобы заставлять ожидать завершения преыдущей SQL команды?Что бы эта ошибка не вылазила?
...
Рейтинг: 0 / 0
02.04.2009, 17:44
    #35909137
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
dakota97Окно с кучей обращений к базе. Возникает ошибка:
Only the cancel command is allowed when the response from the server is pending
как то можно настроить соединение чтобы заставлять ожидать завершения преыдущей SQL команды?Что бы эта ошибка не вылазила?
Подозреваю, что поможет параметр Async в свойстве PBParm объекта Transaction.
...
Рейтинг: 0 / 0
02.04.2009, 18:03
    #35909172
dakota97
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
Локшин МаркПодозреваю, что поможет параметр Async в свойстве PBParm объекта Transaction.
ТОЧНО!
он был установлен в 1(я делаю не с нуля приложение)
я установил в 0
скорость выросла и ошибка перестала вылазить!
а что это за параметр?что он означает?
...
Рейтинг: 0 / 0
02.04.2009, 18:17
    #35909203
dakota97
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
Непонятно если я ставлю Async=0 то что происходит с работой БД?например у меня в функции есть 2 sql запроса. они что теперь будут выполняться паралельно а не последовательно как раньше?
...
Рейтинг: 0 / 0
03.04.2009, 09:47
    #35909845
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при нескольких retrieve одновременно
dakota97Непонятно если я ставлю Async=0 то что происходит с работой БД?например у меня в функции есть 2 sql запроса. они что теперь будут выполняться паралельно а не последовательно как раньше?
Параллельно они исполнялись когда Async был равен 1.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Ошибка при нескольких retrieve одновременно / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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