Как моя процедура должна сообщить DataWindow, что он не умер?
У меня есть отчет InfoMaker, который получает результаты от хранимой процедуры, но эта процедура останавливается на несколько секунд (преднамеренно) перед возвратом набора результатов. Когда я запускаю и просматриваю отчет, это приводит к зависанию приложения PowerBuilder до тех пор, пока процедура не завершится.
Я видел другие отчеты, которые занимали много времени, чтобы отобразить строку состояния внутри приложения до завершения процедуры и отображения отчета. Что-то, что я должен сделать в своем отчете InfoMaker или процедуре T-SQL, чтобы это произошло?
1 ответ
Обычно, когда DW извлекает первую строку, элемент управления DW становится асинхронным - это означает, что помехи будут разрешаться вручную или программой. Если вы хотите сделать окно отзывчивым, перед подключением к БД установите для свойства SQLCA.DBParm значение Async=1. Это сделает DW и окно отзывчивыми.
Если у вас есть строка состояния, вы можете использовать событие таймера для обновления строки состояния любым текстом, который вы хотите отобразить там. Например, "Вытащить данные за 10 секунд...", а затем выполнить обратный отсчет, используя событие таймера.