Происходит перед выполнением DBSetProp(). Имеется две версии синтаксиса.

PROCEDURE dbc_BeforeDBSetProp(cName, cType, cProperty, ePropertyValue) 
PROCEDURE dbc_BeforeDBSetProp
LPARAMETERS cName, cType, cProperty, ePropertyValue

Параметры

cName

Определяет имя первого параметра в функции DBGetProp( ), а именно - имя базы данных, поле, именованное соединение, таблица или представление, для которых фукнция DBSETPROP() произведет изменение значения.

cType

Указывает значение второго параметра в функции DBSetProp( ), а именно - тип объекта элемента, переданного в cName.

cProperty

Указывает значение третьего параметра в функции DBSetProp(), а именно - свойства,  значение которого изменит DBSETPROP().

ePropertyValue

Указывает значение четвертого параметра в функции DBSetProp(), а именно - значение, которое будет присвоено свойству, указанному в cProperty.

Для получения подробной информации о действительных значениях cType и cProperty смотрите описания DBSETPROP() и DBGETPROP( ) в данной справке.

Expand imageПримечания

Вы можете использовать событие dbc_BeforeDBSetProp для отслеживания доступа к базе данных до исполнения DBSETPROP().

Возврат .F. из этой процедуры предотвратит изменения значения свойства. В свою очередь это вызовет возврат функцией DBSetProp() значения  .F..

Некоторые значения свойств могут быть изменены с помощью DBSetProp() или в дизайнере. Например, вы можете изменить свойство Comment для таблицы используя как DBSetProp(), так и табличный дизайнер. Поскольку DBSetProp() сама производит изменения непосредственно в базе данных dbc_BeforeModifyTable или dbc_AfterModifyTable не смогут отловить изменения, сделанные DBSETPROP(). Для перехвата изменений, которые могут быть сделаны иным путем, используйте dbc_BeforeDBSetProp, dbc_AfterDBSetProp, dbc_BeforeModifyTable и dbc_AfterModifyTable для проверки соответствующих изменений.

Expand image Пример

  CopyCode imageСкопировать код
* Отображает на экране имя события, откуда оно было вызвано и переданные параметры.
PROCEDURE dbc_BeforeDBSetProp ;
         (cName,;
          cType,;
          cProperty,;
          ePropertyValue)
 ? '>>   ' + PROGRAM()
 ?? ' in ' + SUBSTR(SYS(16),RAT('\',SYS(16))+1)
 ? '     Current DBC:     ' + SUBSTR(DBC(),RAT('\',DBC())+1)
 ? '     cName          = ' + TRANSFORM(cName)          + ' - ' + TYPE('cName')
 ? '     cType          = ' + TRANSFORM(cType)          + ' - ' + TYPE('cType')
 ? '     cProperty      = ' + TRANSFORM(cProperty)      + ' - ' + TYPE('cProperty')
 ? '     ePropertyValue = ' + TRANSFORM(ePropertyValue) + ' - ' + TYPE('ePropertyValue')+' /end/ '
ENDPROC

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