Visual Basic |
---|
Public Event QueryBeforeExecute( _ ByVal pQuery As TDMSQuery, _ ByVal pObject As TDMSObject, _ ByRef bCancel As Boolean _ ) |
- pQuery
- Запрос, который должен быть выполнен.
- pObject
- Объект, в состав которого входит выборка. Nothing, если выборка выполняется в окне свойств или методом TDMSApplication.ExecuteQuery Метод.
- bCancel
- TRUE - отменить выполнение запроса.
Использование обработки события может быть полезным, когда для выполнения запроса необходимо получить внешнюю информацию (на которую которую невозможно сослаться с помощью конструктора выборок).
1. Событие является отменяемым: присвоением параметру bCancel значения TRUE можно отменить выполнение запроса. Соответственно, поскольку последующие события TDMSApplication.QueryAfterExecute Событие, TDMSApplication.ListBeforeShow Событие не наступают, на Панели состава ничего не отображается.
2. Обработчик может быть размещен в скриптах выборки, профиля и/или общесистемном. Если обработчики определены на всех уровнях, то последовательность их вызова такова:
- скрипт выборки;
- скрипт профиля пользователя;
- общесистемный скрипт.
Если на каком-либо уровне событие было отменено (параметру bCancel присвоено значение TRUE), то обработчики события, размещенные на последующих уровнях, вызваны не будут.
3. Схему последовательности генерации событий при установке фокуса на выборке см. на рисунке:
Предупреждение: при обращении к свойству TDMSQuery.Objects Свойство параметра pQuery TDMSQuery Объект выполняется запрос, и, как следствие, наступают события QueryBeforeExecute и QueryAfterExecute. Таким образом, обработчики событий начинают вызываться в бесконечном цикле и приложение "зависает". Подобных ситуаций необходимо избегать.
4. Событие генерируется при выполнении запроса любыми средствами пользовательского интерфейса (в том числе и в окне свойств выборки). Для того, чтобы событие генерировалось при работе через API (напр., при вызове TDMSApplication.ExecuteQuery Метод), должен быть включен вызов объектных событий в Окне свойств базы данных (см. рисунок).