Uniface u_where: Selección de BD simple

Descubre qué es u_where en Uniface 10.4, cómo crear filtrados de base de datos independientes del gestor, su sintaxis, ejemplos prácticos y buenas prácticas.

28 sept 2025 • 4 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

En este artículo explicamos de forma clara y práctica qué es y cómo usar u_where en Uniface 10.4 para crear selecciones de base de datos independientes del gestor. u_where permite filtrar registros de forma portable entre diferentes DBMS, lo que facilita desarrollar aplicaciones robustas y mantenibles.

Qué es u_where y por qué usarlo: u_where es una cláusula que se resuelve en tiempo de compilación, a diferencia de u_condition que se evalúa en tiempo de ejecución. Al resolverse en compilación, las expresiones pueden aprovechar optimizaciones propias del motor y reduce la sobrecarga durante la ejecución. Además u_where es DBMS independent, por lo que tu lógica de selección funcionará con distintos sistemas de base de datos sin cambios.

Sintaxis básica: read u_where (CAMPO operador valor) Por ejemplo read u_where (NAME = A*) donde el asterisco actúa como comodín según el perfil de búsqueda. Evita construir condiciones demasiado largas: u_where tiene un límite máximo de 8192 bytes para los criterios.

Operadores comunes expresados en palabras: menor que, mayor que, igual a, distinto de, mayor o igual que, menor o igual que, y lógico, o lógico. Recomendación práctica: escribe expresiones claras como read u_where ((NAME = A*) y (SALARY mayor o igual que 4975)) para mantener legibilidad y evitar caracteres que puedan ser interpretados como etiquetas.

Ejemplos prácticos: Ejemplo simple read u_where ((NAME = A*) y (SALARY mayor o igual que 4975)) Esto busca empleados cuyo nombre comienza por A y cuyo salario es igual o superior a 4975. Comparación entre campos de la misma entidad read u_where (PAY_BY_DATE.INVOICE menor que PAIDDATE.INVOICE) Cuando ambas columnas pertenecen a la misma entidad Uniface puede usar los valores de base de datos directamente. Uso de variables read u_where (FNAME = %%$name) El prefijo %% indica sustitución del valor de la variable global $name en tiempo de ejecución, lo que permite consultas dinámicas.

Funciones agregadas con selectdb: selectdb (ave(SALARY), count(NAME)) from EMPLOYEE u_where ((SALARY menor o igual que vAvgSalary) y (birthdate menor o igual que $date(01-01-1990))) to (AVERAGE.DUMMY, TOTAL.DUMMY) Esto calcula un promedio y un conteo y deposita los resultados en campos destino para su visualización o tratamiento posterior.

Reglas importantes: Lado izquierdo de la comparación debe ser siempre un campo de base de datos. Lado derecho puede ser un valor literal, otro campo o una variable. Si ambos campos pertenecen a la misma entidad se usan valores de base de datos; si pertenecen a entidades distintas se usan valores en memoria del componente. Si usas %% o funciones $ la evaluación empleará valores del componente.

Rendimiento y consideraciones por tipo de base de datos: En bases SQL modernas u_where suele ser muy eficiente y puede aprovechar índices secundarios. En bases de tipo record level la ejecución puede ser más lenta porque Uniface hace más trabajo en el componente; en esos casos solo se usan índices de clave primaria de forma automática. Evita condiciones muy largas y procura diseñar perfiles de búsqueda dentro de los límites que impone Uniface, por ejemplo las búsquedas individuales por campo se recortan a 512 bytes y los criterios completos a 8192 bytes.

Diferencias entre u_where y u_condition: u_where se procesa en compilación y es DBMS independent; u_condition se evalúa en tiempo de ejecución y también es portable, pero su comportamiento y optimización difieren. No conviene mezclarlas indiscriminadamente; elige u_where para condiciones que puedan resolverse antes de la ejecución y u_condition para filtros que dependan explícitamente del estado en tiempo de ejecución.

Errores frecuentes y buenas prácticas: recuerda el límite de tamaño 8192 bytes, evita depender de perfiles de campo excesivamente largos porque se truncan, y ten en cuenta que muchos caracteres de perfil son eliminados salvo comodines como asterisco y signo de interrogación que pueden tratarse de forma literal. Prueba y valida tus filtros con datos representativos y monitoriza tiempos de respuesta en cada DBMS objetivo.

Sobre Q2BSTUDIO: Somos Q2BSTUDIO, empresa especializada en desarrollo de software y aplicaciones a medida, con experiencia en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios de inteligencia de negocio y soluciones como power bi. Diseñamos y desarrollamos soluciones personalizadas que integran bases de datos, automatización y agentes IA para empresas que necesitan optimizar sus procesos y obtener valor de sus datos. Si buscas servicios de desarrollo de aplicaciones a medida visita nuestras soluciones de software a medida y si te interesa potenciar tus proyectos con IA descubre cómo trabajamos la inteligencia artificial para empresas.

Palabras clave integradas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Si necesitas adaptar u_where a un proyecto concreto o integrar búsquedas eficientes en tu arquitectura, Q2BSTUDIO puede ayudarte a diseñar la mejor estrategia técnica y a desarrollar la solución a medida que tu negocio necesita.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat