srv_paramlen (API-интерфейс расширенных хранимых процедур)

Применимо к:SQL Server

Внимание

Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Пользуйтесь вместо этого интеграцией со средой CLR.

Возвращает длину данных параметра вызова удаленной хранимой процедуры. Эта функция заменена функцией srv_paraminfo.

Синтаксис

  
int srv_paramlen (  
SRV_PROC *  
srvproc  
,  
int  
n   
);  

Аргументы

srvproc
Указатель на структуру SRV_PROC, представляющую собой дескриптор соединения с клиентом (в данном случае — дескриптор, который получил вызов удаленной хранимой процедуры). Структура содержит сведения, которые используются библиотекой API-интерфейса расширенных хранимых процедур для управления связью и передачи данных между приложением и клиентом.

n
Указывает номер параметра. Первый параметр имеет значение 1.

Возвраты

Фактическая длина данных параметра в байтах. Если параметра с номером n или удаленной хранимой процедуры не существует, возвращается значение -1. Если параметр с номером n имеет значение NULL, то возвращается 0.

Эта функция возвращает следующие значения, если параметр является одним из следующих системных типов данных Microsoft SQL Server 2005 (9.x).

Новые типы данных Длина входных данных
BITN NULL: 1

ZERO: 1

>=255: N/A

<255: недоступно
BIGVARCHAR NULL: 0

ZERO: 1

>=255: 255

<255: фактическая лен
BIGCHAR NULL: 0

ZERO: 255

>=255: 255

<255: 255
BIGBINARY NULL: 0

ZERO: 255

>=255: 255

<255: 255
BIGVARBINARY NULL: 0

ZERO: 1

>=255: 255

<255: фактическая лен
NCHAR NULL: 0

ZERO: 255

>=255: 255

<255: 255
NVARCHAR NULL: 0

ZERO: 1

>=255: 255

<255: фактическая лен
NTEXT NULL: –1

ZERO: –1

>=255: -1

<255: –1

* фактическая лен = длина многобайтовой строки символов (cch)

Замечания

У каждого параметра удаленной хранимой процедуры есть максимальная и реальная длина данных. Для стандартных типов данных с фиксированной длиной, которые не поддерживают значений NULL, реальная и максимальная длина одинаковы. У типов данных переменной длины эти длины могут быть разными. Например, параметр, объявленный как varchar(30), может иметь данные длиной всего 10 байт. Фактическая длина параметра — 10, а максимальная — 30. Функция srv_paramlen возвращает фактическую длину данных в байтах удаленной хранимой процедуры. Для получения максимальной длины данных параметра используется функция srv_parammaxlen.

Когда удаленная хранимая процедура вызывается с параметрами, эти параметры могут быть переданы либо по имени, либо по позиции — без указания имени. Если при вызове удаленной хранимой процедуры часть параметров передается по имени, а часть — по позиции, возникает ошибка. Обработчик SRV_RPC по-прежнему вызывается, однако он отображается так, как если бы не имел параметров, а srv_rpcparams возвращает 0.

Внимание

Необходимо тщательно просмотреть исходный код расширенных хранимых процедур и проверить скомпилированные библиотеки DLL перед их установкой на рабочий сервер. Сведения о проверке безопасности см. на следующем веб-сайте Майкрософт.

См. также

srv_paraminfo (API-интерфейс расширенных хранимых процедур)
srv_rpcparams (API-интерфейс расширенных хранимых процедур)