Ejecutar instrucción SQL

Esta acción envía comandos SQL al servidor SQL y recopila los resultados. Utilice los comandos SELECCIONAR, INSERTAR, ACTUALIZAR y ELIMINAR.

Use la acción Ejecutar instrucción SQL para lograr estos dos objetivos:

  • Obtener datos adicionales de una base de datos: Desea imprimir etiquetas con datos de su base de datos, pero no con todos los valores requeridos. Por ejemplo, solo valores para Product ID y Description, pero no para Price. Cree una instrucción SQL para buscar los valores de Precio en la base de datos SQL.

    SELECCIONAR Precio DE Productos
    WHERE ID = :(Product ID)

    El ID es el campo en la base de datos, ID de producto es una variable definida en el desencadenador.

  • Actualizar o eliminar registros en una base de datos: Después imprimir las etiquetas, actualice los registros de la base de datos e informe al sistema que ese registro en particular ya se ha procesado. Ejemplo de código SQL: Configure el valor del campo de la tabla AlreadyPrinted en Verdadero para el registro que se está procesando.

    ACTUALIZAR Productos
    ESTABLECER YaImpreso = Verdadero
    WHERE ID = :(Product ID)

    O puede eliminar el registro actual de una base de datos, porque ya no es necesario.

    ELIMINAR DE Productos
    WHERE ID = :(Product ID)

    El ID es el campo en la base de datos, ID de producto es una variable definida en el desencadenador.

Nota:

Para usar valores de variables dentro de las instrucciones SQL, inserte dos puntos (:) delante de los nombres de las variables. Esto indica que sigue el nombre de una variable.

Importante

Cuando cree su solución con una conexión de base de datos, use las variables de solicitud de sus etiquetas en lugar de los campos de la base de datos.

Para las variables de solicitud, use los mismos nombres que se definieron para los campos de la base de datos. Por ejemplo:

Database field: food_products_1c.ProdCode

Variable de solicitud de su etiqueta: ProdCode

Loftware identifica automáticamente las variables que corresponden a los campos de la base de datos.

El grupo Acerca de identifica la acción seleccionada.

  • Nombre: le permite definir un nombre de acción personalizado. Esto permite reconocer las acciones fácilmente en la lista de acciones de la solución. En forma predeterminada, el nombre de la acción se toma de su tipo.
  • Descripción: información personalizada acerca de la acción. Ingrese una descripción para explicar el propósito y la función de la acción en una solución.
  • Tipo de acción : información de solo lectura acerca del tipo de acción seleccionado.

El grupo Conexión de bases de datos define la conexión de bases de datos que se utilizará para la instrucción.

Sugerencia

Antes de que pueda enviar una sentencia SQL a una base de datos, configure la conexión con ella. Haga clic en el botón Definir y siga las instrucciones en pantalla. Puede conectarse a un origen de datos que puede controlarse con comandos SQL, de modo que no podrá utilizar archivos de texto (CSV) ni archivos Excel.

El grupo Instrucción SQL define la consulta o instrucción SQL que se ejecutará.

Sugerencia

Las instrucciones del Lenguaje de manipulación de datos (DML) tienen permitido ejecutar consultas dentro de las tablas de bases de datos existentes.

Utilice instrucciones SQL estándares, como SELECCIONAR, INSERTAR, ELIMINAR y ACTUALIZAR, incluidas combinaciones, funciones y palabras clave. No se permiten las instrucciones en lenguaje DDL que se usan para crear bases de datos y tablas (CREAR BASE DE DATOS, CREAR TABLA), o para eliminarlas (ELIMINAR TABLA).

  • Prueba: abre la sección Vista previa de datos. La opción Simular ejecución (seleccionada en forma predeterminada) prueba la ejecución de las instrucciones SQL. Haga clic en Ejecutar para iniciar la simulación.

    Sugerencia

    La sección Vista precia de datos le permite probar la ejecución de su instrucción SQL con datos en directo. Para proteger los datos contra actualizaciones accidentales, asegúrese de que esté habilitada la opción Simular ejecución. Se ejecutarán las instrucciones INSERTAR, ELIMINAR y ACTUALIZAR. Esto le permite conocer los comentarios sobre cuántos registros se verán afectados; luego todas las transacciones se invierten.

    Si utiliza variables en la instrucción SQL, podrá ingresar sus valores para la ejecución de prueba.

  • Insertar origen de datos : inserta variables predefinidas y recientemente creadas en una instrucción SQL.

  • Exportar/Importar: habilita la exportación e importación de instrucciones SQL hacia/desde un archivo externo.

  • Modo de ejecución : especifica el modo explícito de ejecución de la instrucción SQL.

    Sugerencia

    En algunas consultas complejas de SQL, se vuelve cada vez más difícil determinar automáticamente cuál es la supuesta acción. Si la lógica integrada encuentra problemas para identificar su propósito, seleccione la acción principal manualmente.

    • Automática: determina la acción automáticamente.

    • Devuelve un conjunto de registros (SELECCIONAR): recibir el conjunto de datos con registros.

    • No devuelve un conjunto de registros (INSERTAR, ELIMINAR, ACTUALIZAR): use esta opción si está ejecutando una consulta que no devuelve los registros. Inserte nuevos registros, elimine o actualice los registros existentes. El resultado es una respuesta de estado que indica el número de filas que se vieron afectadas por su consulta.

  • Tiempo de espera de ejecución : le permite definir el tiempo de espera para enviar sus comandos al servidor SQL. Utilice el tiempo de espera de ejecución si está enviando varios comandos SQL consecutivos que requieren un tiempo de procesamiento más prolongado.

    Escriba la duración del tiempo de espera solicitado en segundos. Por defecto, la duración del tiempo de espera de ejecución es de 60 s. Si desea que el proveedor de su base de datos defina el tiempo de espera, escriba 0 s.

El grupo Resultado le permite configurar cómo se debe almacenar el resultado de la instrucción SQL, y definir la iteración de la acción.

  • Guardar datos en variable: selecciona o crea una variable para almacenar el resultado de la instrucción SQL. Esta opción depende del Modo de ejecución seleccionado.

    • Resultado de la instrucción SELECCIONAR. Después de ejecutar una instrucción SELECCIONAR, el resultado es un conjunto de datos de registros. Recibirá el contenido de texto con formato CSV. La primera línea contiene los nombres de campo devueltos en un resultado. Las siguientes líneas contienen registros.

      Para extraer los valores del conjunto de datos devuelto y para usarlos en otras acciones, defina y ejecute la acción Usar filtro de datos según los contenidos de esta variable (la acción está disponible en Automation Builder).

    • Resultado de las instrucciones INSERTAR, ELIMINAR Y ACTUALIZAR. Si utilizan las instrucciones INSERTAR, ELIMINAR y ACTUALIZAR, el resultado será un número que indica la cantidad de registros afectados en la tabla.

  • Iterar Para cada registro. Si se habilita esta opción, Loftware agrega automáticamente una nueva acción Para cada registro. Para obtener más información sobre esta acción, consulte el tema específico .

    Se repiten todas las acciones anidadas para cada registro devuelto utilizando la instrucción SQL.

    Nota:

    La asignación automática de campos de la base de datos está habilitada. Las variables de solicitud de la etiqueta se conectan automáticamente a los campos de la base de datos que tengan el mismo nombre. Por ejemplo:

    Database field: food_products_1c.ProdCode

    Variable de solicitud de su etiqueta: ProdCode

El grupo Reintentar en caso de error le permite configurar la acción para reintentar continuamente establecer la conexión con el servidor de una base de datos en caso de que el primer intento no tenga éxito. Si la acción no logra conectar en toda la cantidad de intentos definida, el error se eleva.

  • Reintentos: especifica la cantidad de intentos para conectar con la base de datos.

  • Intervalo de reintento : especifica la duración de tiempo entre los intentos individuales de reintento.

Advertencia:

No coloque el objeto Tabla de bases de datos en su formulario de impresión si usa la acción Ejecutar instrucción SQL . Los resultados pueden ser incorrectos.

Ejemplo

Desea imprimir etiquetas con datos de la base de datos food_products_1c, pero solo para los registros que tengan el valor de campo predefinido UseBy.

Usted define el valor UseBy con la variable ProdUser. En este caso, el valor de ProdUser es “3”.

Una vez impresa cada etiqueta, Loftware escribe los valores de la base de datos en un archivo de texto en el disco. Use las siguientes acciones:

UUID-507bcc38-919d-635b-5209-8706fb3d61e2.png

UUID-cb65b196-d5b2-4725-89d9-14f266f5cb64.png

Solo las etiquetas en las que el valor de es igual a “3” se imprimen, y sus valores se escriben en un archivo de texto:

UUID-637fe74b-7603-a307-be15-a9e8afba04f5.png

Ejecución de acciones y tratamiento de errores

Cada acción se puede configurar como una acción condicional. Las acciones condicionales solo se ejecutan cuando las condiciones definidas permiten su ejecución. Para definir estas condiciones, haga clic en Mostrar opciones de ejecución de acciones y tratamiento de errores.

Las Opciones de ejecución son:

  • Habilitada:Especifica si la acción está activada o desactivada. Se ejecutarán las acciones activadas únicamente. Esta funcionalidad puede usarse al probar un formulario.
  • Condición: define una expresión de programación de una línea que debe proveer un valor booleano (verdadero o falso). Si el resultado de la expresión es verdadero, se ejecutará la acción. La condición ofrece una manera de evitar la ejecución de acciones cada vez.

Las opciones de Tratamiento de errores son:

  • Ignorar error: especifica si un error debe ignorarse. Si está habilitada, continúa la ejecución de acciones incluso si falla la acción actual.

    Nota

    Las acciones anidadas que dependen de la acción actual no se ejecutan en caso de error. La ejecución de acciones continúa con la siguiente acción del mismo nivel que la acción actual. El error se registra, pero no interrumpe la ejecución de la acción.

  • Ejemplo

    Al final de la impresión, tal vez quiera enviar una actualización de estado a una aplicación externa usando la acción Solicitud HTTP . Si la acción de impresión falla, el proceso de la acción se detiene. A fin de ejecutar el informe, incluso luego de un error de la acción de impresión, la acción Imprimir etiqueta debe tener la opción Ignorar error activada.

  • Guardar error en variable: le permite seleccionar o crear una variable para almacenar el error. La misma causa del error también se guarda en las variables internas ActionLastErrorId y ActionLastErrorDesc.