Compartir a través de


srv_paramset (API de procedimiento almacenado extendido)

Nota importanteImportante

Esta característica se quitará en una versión futura de Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utilizan. En su lugar, use la integración CLR.

Establece el valor de un parámetro devuelto a una llamada de un procedimiento almacenado remoto. La función srv_paramsetoutput ha sustituido esta función.

Sintaxis


int srv_paramset (
SRV_PROC *
srvproc
,
int
n
, 
void *
data
,
int
len 
);

Argumentos

  • srvproc
    Es un puntero hacia la estructura SRV_PROC, que es el identificador de una conexión de cliente determinada (en este caso, el identificador que recibió la llamada al procedimiento almacenado remoto). La estructura contiene información que la biblioteca de API Procedimiento almacenado extendido usa para administrar la comunicación y los datos entre la aplicación y el cliente.

  • n
    Indica el número del parámetro para establecer. El primer parámetro es 1.

  • data
    Es un puntero hacia el valor de datos que se va a devolver al cliente como el parámetro de retorno de procedimiento almacenado remoto.

  • len
    Especifica la longitud real de los datos que se devolverán. Si el tipo de datos del parámetro es de una longitud constante y no permite valores nulos (por ejemplo, srvbit o srvint1), se omite len.

Devuelve

SUCCEED si el valor del parámetro se ha establecido correctamente; de lo contrario, FAIL. FAIL se devuelve cuando no hay ningún procedimiento almacenado remoto actual, cuando no hay n parámetros de un procedimiento almacenado remoto, cuando el parámetro no es un parámetro de retorno y cuando el argumento len no es legal.

Si len es 0, devuelve NULL. La única manera de devolver NULL al cliente, es estableciendo len en 0.

Esta función devuelve los valores siguientes, si el parámetro es uno de tipos de datos MicrosoftSQL Server 2005.

Nuevos tipos de datos

Devuelve la longitud de datos

BITN

NULL:len = 0, data = IG, RET = 0

ZERO: N/A

>= 255: N/A

<255: N/A

BIGVARCHAR

NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1

BIGCHAR

NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1

BIGBINARY

NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1

BIGVARBINARY

NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1

NCHAR

NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1

NVARCHAR

NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = valid, RET = 0

<255:len = <8k, data = valid, RET = 1

NTEXT

NULL:len = IG, data = IG, RET = 0

ZERO:len = IG, data = IG, RET = 0

>=255:len = IG, data = IG, RET = 0

<255:len = IG, data = IG, RET = 0

RET = valor devuelto de srv_paramset

 

IG = El valor se omitirá

 

válido = Cualquier puntero válido a datos

 

Notas

Los parámetros contienen datos que se pasan entre los clientes y la aplicación con procedimientos almacenados remotos. El cliente puede especificar ciertos parámetros como parámetros de retorno. Estos parámetros de retorno pueden contener valores que la aplicación de servidor Servicios abiertos de datos devuelve al cliente. Usar parámetros de retorno es equivalente a pasar parámetros por referencia.

No puede establecer el valor devuelto para un parámetro que no se invocó como un parámetro de retorno. Puede usar srv_paramstatus para determinar cómo se invocó el parámetro.

Esta función establece el valor devuelto para un parámetro pero realmente no envía el valor devuelto al cliente. Todos los parámetros devueltos, tanto si sus valores devueltos se han establecido con srv_paramset como si no, se envían automáticamente al cliente cuando se llama a srv_senddone con el marcador de estado SRV_DONE_FINAL establecido.

Cuando se usan parámetros en una llamada a un procedimiento almacenado remoto, estos pueden pasarse por nombre o por posición (sin nombre). Se produce un error si la llamada al procedimiento almacenado remoto se realiza con algunos parámetros pasados por nombre y otros pasados por posición. Todavía se llama al controlador SRV_RPC, pero aparece como si no hubiera ningún parámetro y srv_rpcparams devuelve 0.

Nota de seguridadNota de seguridad

Debe revisar cuidadosamente el código fuente de los procedimientos almacenados extendidos y debe probar las DLL compiladas antes de instalarlas en el servidor de producción. Para obtener información acerca de la revisión y pruebas de seguridad, vea este sitio web de Microsoft.