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


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

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

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

Задает имя столбца, исходный и целевой типы данных для конкретного столбца в строке.

Синтаксис

        int srv_describe (
        SRV_PROC *
        srvproc
        ,
        int
        colnumber
        ,
        DBCHAR *
        column_name
        ,
        int
        namelen
        ,
        DBINT
        desttype
        ,
        DBINT
        destlen
        ,
        DBINT
        srctype
        ,
        DBINT
        srclen
        ,
        void *
        srcdata
        );
      

Аргументы

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

  • colnumber
    Не поддерживается в текущей версии. Столбцы должны быть описаны по порядку. Все столбцы должны быть описаны до вызова srv_sendrow.

  • column_name
    Задает имя столбца, которому принадлежат данные. Этот параметр может иметь значение NULL, поскольку столбцу не обязательно иметь имя.

  • namelen
    Задает длину сообщения column_name в байтах. Если значение аргумента namelen равно SRV_NULLTERM, то значение аргумента column_name должно завершаться нулем.

  • desttype
    Задает тип данных столбца строки назначения. Это тип данных, посылаемый на клиент. Тип данных нужно задавать, даже если данные имеют значение NULL. Дополнительные сведения см. в разделе Типы данных (API-интерфейс расширенных хранимых процедур).

  • destlen
    Задает длину данных (в байтах), которые нужно послать клиенту. Для типов данных фиксированной длины, не допускающих нулевых значений, параметр destlen не учитывается. Для типов данных с переменной длиной и типов данных с фиксированной длиной, поддерживающих значения NULL, параметр destlen задает максимальную длину целевых данных.

  • srctype
    Задает тип данных источника.

  • srclen
    Задает длину данных источника, в байтах. Для типов с фиксированной длиной это значение не учитывается.

  • srcdata
    Предоставляет адрес исходных данных для конкретного столбца. При вызове функции srv_sendrow она ищет значение параметра colnumber в параметре srcdata. Следовательно, этот параметр нельзя освобождать до вызова функции srv_sendrow. Адрес исходных данных можно изменить между вызовами функции srv_sendrow с помощью вызова функции srv_setcoldata. Память, выделенная для srcdata, не должна освобождаться до замены данных столбца с помощью еще одного вызова метода srv_setcoldata или srv_senddone.

    Если значение параметра desttype равно SRVDECIMAL или SRVNUMERIC, параметр srcdata должен быть указателем на структуру типа DBNUMERIC или DBDECIMAL с заранее заданными нужными значениями точности и масштаба. Параметр DEFAULTPRECISION позволяет задать точность по умолчанию, а параметр DEFAULTSCALE — масштаб по умолчанию.

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

Порядковый номер описываемого столбца. Первый столбец имеет номер 1. При возникновении ошибки возвращается значение 0.

Замечания

Функция srv_describe вызывается по разу для каждого столбца данной строки до первого вызова функции srv_sendrow. Столбцы в строке могут быть описаны в любом порядке.

Для изменения местонахождения и длины исходных данных в строках столбцов до посылки полного набора результатов можно использовать функции srv_setcoldata и srv_setcollen соответственно.

Описание типов данных и преобразований типов данных API-интерфейса расширенных хранимых процедур см. в разделе Типы данных (API-интерфейс расширенных хранимых процедур).

Если имя столбца в приложении задано с помощью набора символов Юникод, перед вызовом функции srv_describe его нужно перевести в многобайтную кодировку, заданную на сервере. Дополнительные сведения см. в разделе Данные в Юникоде и кодовые страницы сервера.

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

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