miércoles, 23 de julio de 2014

Crear formulario búsqueda en 10g. Parte 2. bind variable en la consulta

Descripción: En este artículo vamos a ver cómo incluir un bind variable en una consulta del viewObject. El ejemplo está hecho para 10g, aunque los conceptos pueden verse también en 11g ().

Puedes descargar el ejemplo completo en este enlace: Descargar ejemplo

En el editor del ViewObject, en apartado SQL Statement, vamos a añadir en el cuadro where, la condición por la que se va a filtrar en el formulario de búsqueda.

Como en el ejemplo vamos a filtrar por el campo first_name, se añadirá la cláusula correspondiente.

incluye bind variable a la query
se añade la condición en la cláusula where



Si observamos, se añade ":" (dos puntos), para indicar en la consulta que estamos con un parámetro(bind variable).

Para comprobar que la consulta es correcta, podemos pulsar el botón Test
Si no pusiéramos los : (dos puntos) en el parámetro, el resultado de la comprobación sería el siguiente:

resultado test query
resultado del Test de la consulta

¿Y si queremos que la consulta no sea sensible a mayúsculas y minúsculas (case sensitive)?

Bastaría con añadir la función UPPER a la cláusula where.

incluye upper consulta
añade UPPER a la consulta


Si volvemos a acomprobar si la consulta ha sido escrita correctamente, podemos pulsar nuevamente el botón Test.

resultado test query
resultado comprobación (test)

En el siguiente artículo veremos, cómo tras modificar la consulta, y añadir el filtro de búsqueda a través del bind variable, creamos la página.

Artículos relacionados:
- Ejemplo de formulario de búsqueda 11g (parte 2). Bind Variables

martes, 22 de julio de 2014

Crear formulario búsqueda en 10g. Parte 1. ViewObject y Bind Variable

Descripción: En este artículo vamos a ver cómo crear un formulario de búsqueda (search form) en 10g. En esta primera parte veremos cómo se añaden los criterios de búsqueda de la consulta del viewobject con bind variables.
Nota: Si quieres ver la creación del buscador en 11g, puedes hacerlo en el artículo: Ejemplo Formulario de Búsqueda en 11g.

Puedes completo y seguir cada uno de los pasos, así como hacer tus propias pruebas.

Para empezar vamos a añadir al viewObject los criterios por los cuales se va a filtrar los resultados en el formulario de búsqueda que vamos a crear.
Dentro del editor de ViewObject, vamos al apartado Bind Variables.
En este ejemplo vamos a filtrar por el campo FirstName (nombre). 

bind variables editor viewobject
bind variables en el editor del viewObject

El nombre de la variable será p_Nombre. La razón de esta nomenclatura es la de tener una convención de manera que si más adelante se produce un error procedente de los parámetros nos es más fácil detectarlo.

se añade el criterio de búsqueda

Si queremos saber más sobre lo que es un bind variable podemos ver el siguiente artículo del blog SQL Eficiente, se explica con más claridad.
Variables de binding (bind variables)



En el siguiente artículo veremos cómo añadir el bind variable que hemos creado a la consulta.

Fuentes de referencia:

Variables de binding (bind variables) del blog SQL Eficiente


lunes, 21 de julio de 2014

Consulta case sensitive en view criteria

Descripción: En este artículo vamos a ver cómo hacer una consulta que sea sensible a mayúsculas(case sensitive) en una view criteria.
Nota: Esto es válido para 11g.

En ocasiones nos encontramos que podemos desear hacer búsquedas que distinga mayúsculas de minúsculas, o al revés, que no haga esta distinción.
En el ejemplo anterior, pudimos observar que utilizamos un view criteria, para poder hacer búsquedas sobre el campo FirstName.

Para poder modificar esta propiedad de la consulta, hacemos los siguientes pasos.
Vamos al View Criteria, que se encuentra dentro del ViewObject, en el apartado Query.

seleccion viewcriteria en el viewobject
selección del View Criteria en el viewObject




Seleccionamos la cláusula que queremos que tenga este criterio.
Nota: Es posible que tengamos varios criterios (cláusulas) sobre los cuales filtrar y el que sea sensible o no a las mayúsculas sólo queremos que se aplique a ciertos campos. Por ejemplo, no tendría sentido aplicarlo a un campo numérico.

seleccion cláusula where
selección de la cláusula



Desmarcamos el apartado que dice "Ignore Case", y observamos que también se refleja este cambio en la consulta, en el apartado "View Object Where Clause".

cambio opcion ignore case
cambio en la opción "ignore case"


Solo restaría guardar el ViewObject, para tener guardado nuestro cambio.

Como última nota, recomendaría observar el cambio que se produce a nivel de consulta en este apartado de "where clause", porque nos da una idea de lo que pasa por debajo. No debemos olvidar que lo que se ejecuta al final, es una consulta sql, y en el caso de que esta consulta sea muy compleja la página se nos puede volver lenta.

Artículos relacionados:
- Ejemplo formulario de búsqueda en 11g, parte 3. View Criteria