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