Поделиться через


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-библиотеки перед их установкой на рабочий сервер. Сведения о проверке безопасности см. на следующем веб-узле Майкрософт.