Skip to content

Funciones de Base de Datos y ResultSet

Las funciones Lua de base de datos son las herramientas disponibles en los eventos de Autobase para interactuar con las bases de datos.

sql()

Ejecuta una consulta SQL y devuelve un ResultSet con los resultados.

Sintaxis

lua
variable = sql(query)
variable = sql(query, connectionName)

Parámetros

ParámetroTipoRequeridoDescripción
querystringConsulta SQL a ejecutar. Puede incluir parámetros con sintaxis @VARIABLE
connectionNamestringNoNombre del origen de datos. Si se omite, usa el defaultConnection de la instancia

Retorno

Devuelve un ResultSet que contiene:

  • Fields: Lista de campos con nombre y tipo de dato
  • Rows: Lista de registros
  • Métodos de acceso: rs[row, fieldName]

Uso de parámetros

Las consultas pueden incluir variables Lua como parámetros usando la sintaxis @VARIABLE_NAME.

lua
customerId = 5
orders = sql([[
    SELECT id, order_date, total
    FROM orders
    WHERE customer_id = @customerId
    ORDER BY order_date DESC
]])

Los parámetros son automáticamente convertidos al tipo apropiado y escapados para prevenir inyección SQL.

Paginación automática

La función sql() soporta paginación automática cuando se usa el parámetro especial @PAGINATION.

lua
currentPage = 1
pageSize = 10

customers = sql([[
    SELECT id, name, email
    FROM customers
    ORDER BY name
    @PAGINATION
]])

sql_to_vars()

Ejecuta una consulta SQL y asigna automáticamente los campos de la primera fila como variables individuales.

lua
sql_to_vars(query)
sql_to_vars(query, connectionName)

rs_to_vars()

Convierte los campos de una fila específica de un ResultSet existente en variables individuales.

lua
rs_to_vars(resultSet, row)

get_field_value()

Obtiene el valor de un campo específico de una fila de un ResultSet.

lua
value = get_field_value(resultSet, row, fieldName)

Devuelve el valor del campo convertido al tipo Lua apropiado.


Objeto ResultSet

El ResultSet es el objeto que devuelve la función sql() cuando se ejecuta una consulta SQL. Representa un conjunto de resultados de una consulta y proporciona acceso estructurado a los datos devueltos.

Métodos en Lua

get_field_value()

lua
value = resultSet:get_field_value(fieldName, row)

Devuelve el valor del campo en la fila indicada, convertido al tipo correcto.

get_row_count()

lua
count = resultSet:get_row_count()

Devuelve la cantidad de filas en el ResultSet.


Ejemplos prácticos

Incluyen listados, cálculos y validaciones de datos usando ResultSet.

Valores NULL

Los valores NULL de la base de datos se representan internamente como "###ABNULL###" y se convierten automáticamente a nil cuando se acceden mediante get_field_value().