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


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

Применимо к:SQL Server

Внимание

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

Отправляет клиенту сообщение.

Синтаксис

  
int srv_sendmsg (  
SRV_PROC *  
srvproc  
,  
int  
msgtype  
,  
DBINT  
msgnum  
,  
DBTINYINT  
class  
,   
DBTINYINT  
state  
,  
DBCHAR *  
rpcname  
,  
int   
rpcnamelen  
,  
DBUSMALLINT  
linenum  
,  
DBCHAR *  
message  
,  
int  
msglen   
);  

Аргументы

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

msgtype
Является либо SRV_MSG_INFO, либо SRV_MSG_ERROR, в зависимости от того, отправляет сервер информационное сообщение или сообщение об ошибке.

msgnum
4-байтовый номер сообщения.

class
Указывает серьезность ошибки. Серьезность, меньше или равная 10, считается информационным сообщением.

state
Предоставляет код состояния ошибки для текущего сообщения. Код состояния ошибки предоставляет информацию о контексте ошибки. Допустимые значения кода состояния — от 0 до 255.

rpcname
Не поддерживается в текущей версии.

rpcnamelen
Не поддерживается в текущей версии.

linenum
Представляет собой номер строки в пакете языковых команд, к которому относится сообщение. Номера строк начинаются с 1. Если параметр linenum не применяется к сообщению, установите его равным 0.

message
Является указателем на символьную строку, которая должна быть отправлена клиенту.

msglen
Задает длину message в байтах. Если messageзаканчивается нулевым байтом, задайте для параметра msglen значение SRV_NULLTERM.

Возвраты

SUCCEED или FAIL

Замечания

Эта функция отправляет клиенту сообщение об ошибке или информационное сообщение. Она вызывается один раз для каждой отправки сообщения.

Можно отправлять сообщения клиенту при помощи функции srv_sendmsg в любой последовательности перед тем или после того, как были отправлены все строки (если таковые были) при помощи функции srv_sendrow. Все сообщения, если таковые имеются, должны быть отправлены клиенту перед тем, как функция srv_senddone отправит состояние завершения.

Для отправки сообщений в Юникоде лучше использовать функцию srv_wsendmsg, чем функцию srv_sendmsg.

Дополнительные сведения см. в статье Данные в Юникоде и кодовые страницы сервера.

Внимание

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