Приложения
Приложение А. Функции, константы и структуры 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 записываются битовые флаги, связанные с параметром.
Все поля структуры, не соответствующие типу параметра, обнуляются.
См. также