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


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

Важное примечаниеВажно!

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

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

Синтаксис

        int srv_parammaxlen (
        SRV_PROC *
        srvproc
        ,
        int
        n 
        );
      

Аргументы

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

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

Возвращаемое значение

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

Если параметр принадлежит к одному из типов данных Microsoft SQL Server 2005, то эта функция возвращает следующие значения.

Новые типы данных

Длина входных данных

BITN

NULL: 1

ZERO: 1

>=255: N/A

<255: N/A

BIGVARCHAR

NULL: 255

ZERO: 255

>=255: 255

<255: 255

BIGCHAR

NULL: 255

ZERO: 255

>=255: 255

<255: 255

BIGBINARY

NULL: 255

ZERO: 255

>=255: 255

<255: 255

BIGVARBINARY

NULL: 255

ZERO: 255

>=255: 255

<255: 255

NCHAR

NULL: 255

ZERO: 255

>=255: 255

<255: 255

NVARCHAR

NULL: 255

ZERO: 255

>=255: 255

<255: 255

NTEXT

NULL: -1

ZERO: -1

>=255: -1

<255: -1

Замечания

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

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

Примечание по безопасностиПримечание по безопасности

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