DBEXECUTE

Nota

En entornos de nube, DBEXECUTE solo se admite en aplicaciones comerciales de Infor. No se puede utilizar DBEXECUTE en aplicaciones personalizadas o extendidas. En su lugar, utilice DBEXECUTEFIXED.

Puede leer valores de una base de datos relacional, actualizar los valores existentes e insertar valores nuevos. DBEXECUTE funciona directamente con la base de datos, no a través de una lista. Por lo tanto, a diferencia de la función RWDB, puede insertar filas en la base de datos. Los parámetros de la fórmula DBEXECUTE son instrucciones SQL.

La función DBEXECUTE admite cuatro combinaciones de teclas que permiten escribir 0, un valor nulo o una cadena vacía en la base de datos:

  • SUPR: escribe 0.
  • CTRL+SUPR: escribe nulo.
  • RETROCESO: escribe una cadena vacía ("").
  • CTRL+RETROCESO: escribe una cadena vacía ("").

Sintaxis

La fórmula DBEXECUTE tiene estos parámetros.

  1. Nombre de base de datos: especifica la conexión de datos relacionales que se define en EPM Administration.
  2. Instrucción SELECT: se utiliza para recuperar datos de la base de datos. Se trata de un comando SQL SELECT. Cuando se introduce un nuevo valor, se actualiza el valor existente. Si no hay ningún valor existente, se utiliza la instrucción INSERT. Para reescribir en la base de datos, la consulta debe hacer referencia a la clave primaria. SQL SELECT puede devolver varios valores de una fila, pero DBEXECUTE los ignora todos, salvo el primero. Por lo tanto, para devolver y reescribir un valor que no sea la clave primaria, asegúrese de que la clave primaria no es el primer valor solicitado por la instrucción.
  3. Instrucción INSERT: especifica cómo se introducen nuevos datos en la base de datos. Se trata de un comando INSERT estándar de SQL. Puede utilizar el carácter ? en la instrucción INSERT. Representa el valor que se introdujo por última vez mediante DBEXECUTE en la celda actual.

Ejemplo

En este ejemplo, productid es la clave primaria.

=DBEXECUTE("data_connection", "SELECT productid,FROM products WHERE
		productid=123","INSERT INTO products VALUES(’123’,?)")

La instrucción SELECT se ejecuta cada vez que se procesa la función DBEXECUTE. Por ejemplo, si se muestra en un informe, se utiliza como parámetro en cualquier otra fórmula, se utiliza en una acción, etc. Sin embargo, la instrucción INSERT solo se ejecuta cuando se introduce un valor en una celda y el valor no existe en la base de datos. Esta característica se puede utilizar si emplea una acción para ejecutar DBEXECUTE y desea insertar datos en la base de datos o para ejecutar cualquier otro comando SQL.

Ejemplo

En este ejemplo, productid es la clave primaria. El id. de producto al que se hace referencia está contenido en una variable de informe denominada rv_prod.

=DBEXECUTE("data_connection", "SELECT productid, FROM products WHERE
		productid="&Reportvariables.rv_prod.text,"INSERT INTO products VALUES(’123’,?)")

DBEXECUTE en acciones

Para ejecutar una instrucción INSERT, o cualquier otro comando SQL, en una fórmula DBEXECUTE ejecutada mediante una acción, utilice la instrucción INSERT en lugar de la instrucción SELECT.

Ejemplo

=DBEXECUTE("data_connection", "INSERT INTO products VALUES (’123’,’[a
		value]’)","")