Справочное руководство по TDMS 5.0 API
QueryBeforeExecute Event
Смотри также  Послать замечания
pQuery
Запрос, который должен быть выполнен.
pObject
Объект, в состав которого входит выборка. Nothing, если выборка выполняется в окне свойств или методом ExecuteQuery.
bCancel
TRUE - отменить выполнение запроса.
TDMSApplication Объект : QueryBeforeExecute Event

Glossary Item Box

Описание

Генерируется перед выполнением запроса.

Определение

Visual Basic
Public Event QueryBeforeExecute( _
   ByVal pQuery As TDMSQuery, _
   ByVal pObject As TDMSObject, _
   ByRef bCancel As Boolean _
)

Параметры

pQuery
Запрос, который должен быть выполнен.
pObject
Объект, в состав которого входит выборка. Nothing, если выборка выполняется в окне свойств или методом ExecuteQuery.
bCancel
TRUE - отменить выполнение запроса.

Заметки

Использование обработки события может быть полезным, когда для выполнения запроса необходимо получить внешнюю информацию (на которую которую невозможно сослаться с помощью конструктора выборок).

1. Событие является отменяемым: присвоением параметру bCancel значения TRUE можно отменить выполнение запроса. Соответственно, поскольку последующие события QueryAfterExecute, ListBeforeShow не наступают, на Панели состава ничего не отображается.

2. Обработчик может быть размещен в скриптах выборки, профиля и/или общесистемном (см. рисунок). Если обработчики определены на всех уровнях, то последовательность их вызова такова:

  • скрипт выборки;
  • скрипт профиля пользователя;
  • общесистемный скрипт.

Если на каком-либо уровне событие было отменено (параметру bCancel присвоено значение TRUE), то обработчики события, размещенные на последующих уровнях, вызваны не будут.

3. Схему последовательности генерации событий при установке фокуса на выборке см. на рисунке.

Предупреждение: при обращении к свойству Objects параметра pQuery выполняется запрос, и, как следствие, наступают события QueryBeforeExecute и QueryAfterExecute. Таким образом, обработчик события Query_BeforeExecute() начинает вызываться в бесконечном цикле и приложение "зависает". Подобных ситуаций необходимо избегать (см. пример).

4. Событие генерируется при выполнении запроса любыми средствами пользовательского интерфейса (в том числе и в окне свойств выборки). Для того, чтобы событие генерировалось при работе через API (напр., при вызове ExecuteQuery), должен быть включен вызов объектных событий в Окне свойств базы данных (см. рисунок).

Включение генерации объектных событий 

Смотри также

© 2016 CSoft Development. Все права защищены.