Paso por aquí a ver que me aconsejan en cuanto al método que tengo pensado utilizar para realizar las búsquedas desde un formulario en Delphi.
Desde hace tiempo he venido leyendo artículos sobre el uso de vistas (VIEW), según lo poco que se las vistas son el resultado de consultas preparadas en el manejador de base de datos, normalmente se hacen cuando una consulta se va a utilizar muchas veces y requiere cierto grado de complejidad. Por ejemplo JOIN entre varias tablas. La vista mostrará el resultado del JOIN y se comportara como una tabla, lo que quiere decir que se puede consultar mediante el SELECT *FROM nombre_de_vista y aplicar condiciones WHERE. También tengo entendido que las vistas pueden ser modificables o no pero este depende de las instrucciones que se estén utilizando.
Bueno en mi caso no necesito que sean modificables. El asunto es que tengo varios formularios de búsqueda, PRODUCTOS, CLIENTES, PROVEEDORES, entre otros. Cada uno de estos formularios tiene una tabla donde se mostraran los registros pero estos registros serán mostrados a partir de un filtro. Adjunto dejo una imagen del formulario de búsqueda para PROVEEDORES y así tengan una mejor idea.
Ok, el formulario tiene un TEdit que servirá para introducir los datos a buscar. Cada vez que se introduzca un carácter los registros se irán filtrando según los caracteres que se vayan introduciendo y la opción que se haya seleccionado en el TComboBox.
Entonces, mi idea es crear vistas que contengan los datos que voy a mostrar en las tablas ya que cada vez que introduzca un carácter la misma consulta se estará realizando para filtrar los datos en la tabla. Y para no ir directamente contra la tabla en la base de datos pienso que es más rápido filtrar los registros de una vista que ya tiene la estructura de datos deseada.
Otra forma que vi fue la de utilizar procedimientos almacenados, pero no me parece correcta ya que ejecutar un procedimiento almacenado cada vez que se introduzca un carácter sería como sobre cargar el manejador de base de datos.
No se si estoy en lo correcto, y pues no tengo experiencia con aplicaciones grandes y no se muy bien cuando utilizar vistas o procedimientos almacenados. Con esto no quiero decir que mi aplicación vaya a tener un gran alcance pero si me gustaría saber que recomendaciones me dan ya que el asunto se complica cuando una base de datos comienza a crecer mucho y se necesitan aplicar métodos para optimizar y darse cuenta tarde que se pudo haber utilizado una vista en lugar de consultar una o varias tablas directamente generara un trabajito algo tedioso.
Espero sugerencias.