srv_paramlen (API-интерфейс расширенных хранимых процедур)
![]() |
---|
В будущей версии Microsoft 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.
Новые типы данных |
Длина входных данных |
---|---|
BITN |
NULL: 1 ZERO: 1 >=255: N/A <255: N/A |
BIGVARCHAR |
NULL: 0 ZERO: 1 >=255: 255 <255: actual len |
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: actual len |
NCHAR |
NULL: 0 ZERO: 255 >=255: 255 <255: 255 |
NVARCHAR |
NULL: 0 ZERO: 1 >=255: 255 <255: actual len |
NTEXT |
NULL: -1 ZERO: -1 >=255: -1 <255: -1 |
* actual len = Длина многобайтовой символьной строки (cch)
Замечания
У каждого параметра удаленной хранимой процедуры есть максимальная и реальная длина данных. Для стандартных типов данных с фиксированной длиной, которые не поддерживают значений NULL, реальная и максимальная длина одинаковы. У типов данных переменной длины эти длины могут быть разными. Например, параметр, объявленный как varchar(30) может иметь данные длиной всего 10 байтов. Фактическая длина параметра равна 10, а максимальная длина равна 30. Функция srv_paramlen возвращает фактическую длину данных удаленной хранимой процедуры в байтах. Для получения максимальной длины данных используется функция srv_parammaxlen.
Когда удаленная хранимая процедура вызывается с параметрами, то эти параметры могут быть переданы либо по имени, либо по позиции — без указания имени). Если при вызове удаленной хранимой процедуры часть параметров передается по имени, а часть — по позиции, возникает ошибка. Обработчик SRV_RPC по-прежнему вызывается, однако он отображается так, как если бы он не имел параметров, а функция srv_rpcparams возвращает 0.
![]() |
---|
Необходимо тщательно просмотреть исходный код расширенных хранимых процедур и проверить скомпилированные DLL-библиотеки перед их установкой на рабочий сервер. Сведения о проверке безопасности см. на следующем веб-узле Майкрософт. |