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

Описания RDS

Приложения

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

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

А.5.17. Работа с глобальными данными схемы

А.5.17.2. rdsSGPGetData – чтение значения глобального параметра

# Приложения

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

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

#### А.5.17. Работа с глобальными данными схемы

##### А.5.17.2. rdsSGPGetData – чтение значения глобального параметра

Функция rdsSGPGetData возвращает значение глобального параметра схемы по его имени или целому идентификатору.

      BOOL RDSCALL rdsSGPGetDataA(
        RDS_PSGPDATA Data // Указатель на структуру описания параметра (имя параметра - UTF8)
      );
      BOOL RDSCALL rdsSGPGetDataW(
        RDS_PSGPDATA Data // Указатель на структуру описания параметра (имя параметра - UTF16)
      );
      // Функция-псевдоним
      BOOL RDSCALL rdsSGPGetData(
        RDS_PSGPDATA Data // Указатель на структуру описания параметра (имя параметра - кодировка по умолчанию)
      );

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

RDS_BSgp

Параметры

Data(RDS_PSGPDATA)
  Указатель на структуру описания параметра с заполненными полями имени или идентификатора.

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

TRUE – параметр существует, FALSE – указанного параметра нет в схеме.

Примечания

Перед вызовом этой функции в структуре RDS_SGPDATA, указатель на которую передается в параметре, должно быть заполнено поле размера servSize и поля, указывающих на конкретный параметр: Id или NameA/NameW/Name. (это структура со строковыми полями, поэтому в ней есть поля для двух разных кодировок). Если в поле Id записано ненулевое значение, поиск параметра в схеме будет осуществляться по этому полю. Если же Id==0, то, в зависимости от суффикса вызванной функции, поиск параметра будет осуществляться по его имени из поля

- для rdsSGPGetDataA – из поля NameA в кодировке UTF8;
- для rdsSGPGetDataW – из поля NameW в кодировке UTF16;
- для функции-псевдонима rdsSGPGetData – из поля-псевдонима Name в кодировке по умолчанию.

Если параметр не найден, в переданной структуре в поле Exists записывается FALSE. Если же указанный параметр существует в схеме, в структуре заполняются следующие поля:

- в поле Exists записывается TRUE;
- в поле Type записывается константа, указывающая на тип параметра: RDS_VARTYPE_INT для целого числа, RDS_VARTYPE_DOUBLE для вещественного числа, RDS_VARTYPE_STRING для строки и RDS_VARTYPE_BINARY для блока двоичных данных;
- если параметр – вещественное число, его значение записывается в поле DoubleValue;
- если параметр – целое число, его значение записывается в поле IntValue;
- если параметр – строка, его значение в кодировке UTF8 записывается в поле StrValueA, в кодировке UTF16 – в поле StrValueW (можно также считывать значение в кодировке по умолчанию из поля-псевдонима StrValue);
- если параметр – блок двоичных данных, указатель на начало этих данных записывается в поле Bytes, а длина блока в байтах – в поле BytesCount;
- в поле Flags записываются битовые флаги, связанные с параметром.

Все поля структуры, не соответствующие типу параметра, обнуляются.

См. также

rdsSGPGetDataByNum, rdsSGPSetData, RDS_SGPDATA.