Compartir a través de


Cómo procesar códigos de retorno y parámetros de salida (ODBC)

Los procedimientos almacenados de SQL Server pueden incluir códigos de retorno y parámetros de salida de tipo entero. Los códigos de retorno y los parámetros de salida se envían en el último paquete del servidor y no están disponible para la aplicación hasta que SQLMoreResults devuelve SQL_NO_DATA. Si se devuelve un error de un procedimiento almacenado, llame a SQLMoreResults para avanzar al siguiente resultado hasta que se devuelva SQL_NO_DATA.

Para obtener un ejemplo que muestra cómo procesar un código de retorno y un parámetro de salida, vea ProcessReturnCodes.cpp, que puede descargar en la página de descargas de SQL Server en MSDN. Este ejemplo se desarrolló utilizando Microsoft Visual C++ 2005 para ODBC versión 3.0 o posterior.

Nota de seguridadNota de seguridad

Siempre que sea posible, utilice la autenticación de Windows. Si la autenticación de Windows no está disponible, solicite a los usuarios que escriban sus credenciales en tiempo de ejecución. No guarde las credenciales en un archivo. Si tiene que conservar las credenciales, debería cifrarlas con la API de criptografía de Win32.

Para procesar códigos de retorno y parámetros de salida

  1. Cree una instrucción SQL que utilice la secuencia de escape ODBC CALL. La instrucción debe usar marcadores de parámetros para cada parámetro de entrada, de entrada/salida y de salida, así como para el valor devuelto por el procedimiento (si existe).

  2. Llame a SQLBindParameter para cada parámetro de entrada, de entrada/salida y de salida, así como para el valor devuelto por el procedimiento (si existe).

  3. Ejecute la instrucción con SQLExecDirect.

  4. Si los conjuntos de resultados se procesan hasta SQLFetch o SQLFetchScroll se devuelve SQL_NO_DATA, mientras que si se procesa el último conjunto de resultados o hasta SQLMoreResults se devuelve SQL_NO_DATA. En este momento, las variables enlazadas al código de retorno o a los parámetros de salida se rellenan con los valores de datos devueltos.