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-интерфейс расширенных хранимых процедур)