Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.16. Работа с динамическими переменными

А.5.16.7. rdsSubscribeToDynamicVar – создать подписку на динамическую переменную

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.5. Сервисные функции и макросы RDS

#### А.5.16. Работа с динамическими переменными

##### А.5.16.7. rdsSubscribeToDynamicVar – создать подписку на динамическую переменную

Функция rdsSubscribeToDynamicVar подписывает вызвавший ее блок на указанную динамическую переменную.

      RDS_PDYNVARLINK RDSCALL rdsSubscribeToDynamicVarA(
        int Block,        // Блок, содержаший переменную (RDS_DV*)
        RDSCSTR VarName,  // Имя переменной (UTF8)
        RDSCSTR VarType,  // Тип переменной (UTF8)
        BOOL Search       // Искать по иерархии
      );
      RDS_PDYNVARLINK RDSCALL rdsSubscribeToDynamicVarW(
        int Block,        // Блок, содержаший переменную (RDS_DV*)
        RDSWCSTR VarName, // Имя переменной (UTF16)
        RDSWCSTR VarType, // Тип переменной (UTF16)
        BOOL Search       // Искать по иерархии
      );
      // Функция-псевдоним
      RDS_PDYNVARLINK RDSCALL rdsSubscribeToDynamicVar(
        int Block,        // Блок, содержаший переменную (RDS_DV*)
        RDSXCSTR VarName, // Имя переменной (кодировка по умолчанию)
        RDSXCSTR VarType, // Тип переменной (кодировка по умолчанию)
        BOOL Search       // Искать по иерархии
      );

Тип указателя на эту функцию

RDS_DvISSB (для UTF8) или RDS_DvIWsWsB (для UTF16)

Параметры

Block(int)
  Одна из констант, указывающих на блок, в котором ищется динамическая переменная для подписки:

  RDS_DVSELF | Переменная ищется в вызвавшем функцию блоке.
  RDS_DVPARENT | Переменная ищется в родительской подсистеме вызвавшего функцию блока.
  RDS_DVROOT | Переменная ищется в корневой подсистеме схемы.

VarName(RDSCSTR,RDSWCSTR,RDSXCSTR)
  Указатель на строку с именем переменной.
StrCaption(RDSCSTR,RDSWCSTR,RDSXCSTR)
  Указатель на строку типа переменной. Эта строка состоит из одного (для простых переменных) или нескольких (для структур и матриц) символов RDS_VARTYPE_*.
Search(BOOL)
  TRUE – если в блоке Block нет переменной с именем VarName и типом VarType, функция будет искать переменную с этим именем и типом в родительской подсистеме этого блока, затем – в ее родительской подсистеме и т.д. до корневой подсистемы схемы. FALSE – искать переменную только в блоке Block.

Возвращаемое значение

Указатель на созданную во внутренней памяти RDS структуру подписки RDS_DYNVARLINK или NULL, если подписка невозможна (ошибка в одном из параметров функции).

Примечания

Эта функция подписывает вызвавший ее блок на динамическую переменную с именем VarName и типом VarType в вызвавшем блоке (при Block==RDS_DVSELF), его родительской подсистеме (при Block==RDS_DVPARENT) или в корневой подсистеме (при Block==RDS_DVROOT). В параметре VarType передается строка типа переменной, составленная по правилам RDS: например, для вещественного числа – «D», для матрицы целых чисел – «MI», для структуры из двух вещественных чисел, как бы ни назывался тип этой структуры – «{DD}».

Структура подписки RDS_DYNVARLINK создается во внутренней памяти RDS даже в том случае, если переменная с указанным именем и типом не найдена – при этом поле Data структуры получит значение NULL, а RDS будет наблюдать за динамическими переменными, и, при создании переменной, отвечающей параметрам функции, немедленно заполнит поля структуры ее параметрами. Общие вопросы доступа к динамическим переменным и подписки на них рассматриваются в §2.6.1 руководства программиста.

Пример

Пример использования функции rdsSubscribeToDynamicVar приведен в §2.6.2 руководства программиста.

См. также

RDS_DYNVARLINK, rdsUnsubscribeFromDynamicVar.