srv_paramset (API de procedimiento almacenado extendido)
Importante |
|---|
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 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. |
Importante
Nota de seguridad