SQLExecute--Ejecutar una sentencia

Finalidad


Especificación: CLI de DB2 1.1 ODBC 1.0 ISO CLI

SQLExecute() ejecuta, una o más veces, una sentencia que se ha preparado satisfactoriamente con SQLPrepare(). La sentencia se ejecuta utilizando el valor actual de las variables de aplicación que se enlazaron a marcadores de parámetros mediante SQLBindParameter().

Sintaxis

SQLRETURN   SQLExecute       (SQLHSTMT          StatementHandle);  /* hstmt */

Argumentos de la función

Tabla 46. Argumentos de SQLExecute

Tipo de datos Argumento Uso Descripción
SQLHSTMT StatementHandle entrada Descriptor de contexto de sentencia.

Uso

La serie de la sentencia de SQL puede contener marcadores de parámetros. Un marcador de parámetro se representa mediante un carácter ? y sirve para indicar una posición en la sentencia donde se colocará un valor proporcionado por la aplicación cuando se invoque SQLExecute(). Este valor se puede obtener a partir de una variable de aplicación. Se utiliza SQLBindParameter() para enlazar el área de almacenamiento de la aplicación con el marcador de parámetro.

Se deben enlazar todos los parámetros antes de invocar SQLExecute().

Después de procesar los resultados de la llamada a SQLExecute(), la aplicación puede ejecutar de nuevo la sentencia con los mismos u otros valores de parámetros.

Las sentencias ejecutadas por SQLExecDirect() no se pueden ejecutar de nuevo invocando SQLExecute(); se debe primero invocar SQLPrepare().

Si se genera un conjunto resultante, SQLFetch() recupera la siguiente fila de datos en variables enlazadas. También se pueden recuperar datos llamando a SQLGetData() para cualquier columna que no esté enlazada.

Códigos de retorno

Se devuelve SQL_NO_DATA_FOUND si la sentencia de SQL es un UPDATE de búsqueda o un DELETE de búsqueda y no hay ninguna fila que cumpla la condición de búsqueda.

Diagnósticos

Los SQLSTATE para SQLExecute() incluyen todos los correspondientes a SQLExecDirect() (consulte la Tabla 45), excepto HY009 y HY090, y también incluyen los SQLSTATE de la Tabla 47.

Tabla 47. SQLSTATE de SQLExecute

SQLSTATE Descripción Explicación
HY010 Error de secuencia de función. El descriptor de contexto de sentencia (StatementHandle) especificado no está en estado preparado. Se llama a SQLExecute() sin antes llamar a SQLPrepare().
08004 El servidor de aplicaciones rechazó la conexión. El nombre de usuario o la contraseña utilizados para conectar con la fuente de datos no son correctos.
08S01 Error en el enlace de comunicaciones. El enlace de comunicaciones entre la aplicación y la fuente de datos se interrumpió antes de finalizar la función.
39001 Una función definida por el usuario ha devuelto un SQLSTATE no válido. Una función definida por el usuario ha devuelto un SQLSTATE que no es válido.
59101 Usuario no definido. El usuario no está definido en la base de datos de control del Centro de administración de dispositivos portátiles.
59102 Contraseña no correcta. La contraseña del usuario no coincide con la contraseña definida en el Centro de administración de dispositivos portátiles.
59103 Grupo no definido. El grupo no está definido en el Centro de administración de dispositivos portátiles.
59104 Aplicación no definida. La aplicación no está definida en el Centro de administración de dispositivos portátiles.
59105 Suscripción no definida. La suscripción con "AgentAdapter" no está definida en el Centro de administración de dispositivos portátiles.
59106 Suscripción no completada. La suscripción no dispone de toda la información necesaria para invocar un procedimiento almacenado remoto.
59120 Error de conversión XML. AgentAdapter ha fallado al convertir los datos de entrada del usuario en un documento XML.
59121 Se ha producido un error general de AgentAdapter. Se ha producido un error general de AgentAdapter.
59122 Ha fallado la carga de la biblioteca. No se encuentran en el sistema algunas de las bibliotecas necesarias.
HY501 Nombre no válido de la fuente de datos. El nombre de fuente de datos especificado no es válido.

Restricciones

Ninguna.

Consulta relacionada