Ваше приложение может запросить асинхронную обработку для четырех функций, которые посылают запросы к источнику данных и извлекают данные: SQLEXEC(), SQLMORERESULTS(), SQLTABLES() и SQLCOLUMNS(). Вы можете разрешить асинхронную обработку установкой свойства соединения Asynchronous с помощью функции SQLSETPROP(). Когда для соединения установлена асинхронная связь, все эти четыре функции работают в асинхронном режиме.

Для проверки установки свойства Asynchronous

  • Для просмотра значения свойства Asynchronous используйте функцию SQLGETPROP(). В приведенном ниже примере nConnectionHandle представляет собой номер дескриптора вашего активного соединения:

     CopyCode imageСкопировать код
    ? SQLGETPROP(nConnectionHandle,'Asynchronous')

Чтобы разрешить асинхронную обработку

  • Используйте функцию SQLSETPROP() для указания значения свойства Asynchronous:

     CopyCode imageСкопировать код
    ? SQLSETPROP(nConnectionHandle,'Asynchronous', .T.)

В асинхронном режиме вы должны вызывать каждую функцию повторно, до тех пор, пока она не возвратит значение отличное от 0 (0 - означает что исполнение не завершено). Пока функция исполняется, вы можете прекратить обработку нажатием клавиши ESC в случае, если свойство SET ESCAPE установлено в true (.T.).

Пока функция не завершит обработку, приложение может использовать дескриптор соединения только с функцией SQLCANCEL() или с асинхронными фуекциями — SQLEXEC(), SQLMORERESULTS(), SQLTABLES() или SQLCOLUMNS() — изначально связнными с дескриптором. Вы не можете вызывать любую из трех других асинхронных функций или SQLDISCONNECT() и одним и тем же дескриптором соединения, до тех пор, пока вызов функции не завершится.

Смотрите также