POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Sentencia SQL en Uniface 10.4: Guía para Desarrolladores

SQL en Uniface 10.4: portabilidad, rendimiento y buenas prácticas para integraciones avanzadas

Publicado el 28/09/2025

Nota sobre la autoría del contenido: este artículo se ha reescrito y traducido al español a partir de la documentación oficial de Uniface 10.4 y adaptado para desarrolladores y equipos técnicos interesados en integraciones avanzadas y buenas prácticas de desarrollo.

Qué es Uniface
Uniface es una plataforma 4GL orientada al desarrollo de aplicaciones empresariales multiplataforma creada por Rocket Software. Incluye ProcScript como lenguaje para definir la lógica de las aplicaciones y ofrece mecanismos de acceso a datos tanto a través de I O estándar de Uniface como mediante la sentencia sql para ejecutar consultas SQL en bruto contra bases de datos soportadas como Oracle, SQL Server, MySQL y otras.

Sintaxis básica de la sentencia sql
La forma general es sencilla: sql{/data {/fieldname}} {/print} DMLStatement, PathString. DMLStatement representa la consulta SQL hasta 32KB y PathString identifica la conexión a la base de datos sin el signo de dólar. Los calificadores opcionales modifican el formato del resultado.

Calificadores principales
/data devuelve resultados estructurados como una lista Uniface anidada donde cada fila es un ítem y cada columna es un subítem, ideal para procesado programático. /fieldname agrega la primera fila con los nombres de columna cuando se usa junto con /data. /print devuelve un formato legible con columnas y espacios en blanco similar a una salida de SQL workbench.

Ejemplos prácticos
Validación de existencia de un valor en trigger loseFocus
trigger loseFocus if ($fieldendmod != 0) sql select invnum from invoices where invnum = %%invnum%%, ora if ($status > 0) message Invoice number already exists return (-1) endif endif end
Listas de valores dinámicas usando sql/data
function getCountryList sql/data select country_code, country_name from countries order by country_name, def forlist vRecord in $result getitem vCode, vRecord, 1 getitem vName, vRecord, 2 putitem/id pCountryList, vCode, vName endfor end

Valores de retorno y variables del sistema
$status indica el resultado de la operación con códigos comunes igual 0 numero de registros encontrados o afectados, -1 ruta inválida o inexistente, -3 error de E O o declaración DML vacía, -9 máximo de conexiones alcanzado, -11 registro bloqueado, -31 sentencia SQL excede 32KB. $result contiene los resultados: sin calificadores suele contener la primera columna de la última fila; con calificadores contiene la estructura o la salida formateada según corresponda.

Buenas prácticas y recomendaciones
Priorizar la portabilidad utilizando las operaciones I O estándar de Uniface cuando sea posible para facilitar migraciones entre bases de datos. Evitar incluir COMMIT o ROLLBACK dentro de las sentencias SQL ya que Uniface gestiona las transacciones internamente. Tener precaución con los tipos Long en Oracle, la sentencia sql puede truncar a 42 bytes; para campos Long usar recuperación de entidades estándar. Siempre comprobar $status después de operaciones SQL y leer $procerror para obtener detalles en caso de fallo.

Cuándo usar sql frente a I O estándar de Uniface
Usar sql cuando se necesiten joins complejos entre muchas tablas, funciones agregadas o específicas del motor, operaciones masivas que resulten ineficientes con I O estándar o cuando se requiera aprovechar funciones propias de la base de datos. Mantener las operaciones CRUD simples y la entrada por formularios con retrieve y store de Uniface para mantener portabilidad y mantenibilidad.

Sobre Q2BSTUDIO
Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida para empresas de diversos sectores. Ofrecemos soluciones avanzadas en inteligencia artificial, servicios cloud aws y azure, ciberseguridad, servicios de inteligencia de negocio y desarrollo de agentes IA y power bi. Si buscas crear una aplicación a medida escalable y multiplataforma visita nuestras soluciones de desarrollo de aplicaciones y software a medida y si quieres potenciar tu empresa con IA revisa nuestros servicios de inteligencia artificial para empresas.

Conclusión
La sentencia sql en Uniface 10.4 ofrece el poder de ejecutar SQL en bruto cuando se necesita mayor control o eficiencia en operaciones complejas. Empléala con criterio, gestiona correctamente errores y transacciones y combina lo mejor de Uniface con capacidades nativas de la base de datos para obtener soluciones robustas. Para proyectos que requieren integración de IA, ciberseguridad, servicios cloud o inteligencia de negocio, Q2BSTUDIO puede acompañarte en todo el ciclo de desarrollo.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio