![]() |
¿Como se utilizan las Vistas en Delphi?
Disculpen señores...
Estoy buscando la manera de realizar vistas en delphi 7,,, segun tengo entendido y por lo que ya lei en la red.. puedo utilizar vistas desde delphi 7 utilizando lo benditos componentes TIBquery o IBSQL... y TIBTable... porque una vista es una tabla virtual,,, entonces para que yo `pueda modificar datos mediante una consulta lo pretendo realizar mediante vistas Actualizables... pero el problema es.. como las abro en Delphi es decir,, realizo el codigo de la vista con el componente TIBquery.... y luego lo conecto a un Datasource y los DbEdits en su propiedad Datasource les pongo el nombre del datasource que hace referencia a mi vista ... pero al momento de ejecutarla no me aparecen los resultados de la busqueda... los edits se quedan vacios.... alguien me puede decir que pasa??? o como se utilizan las vistas desde delphi???? |
Una vista se debe crear primero en el motor:
Por ejemplo:
luego, en delphi, como es usual, lanzas una consulta contra la vista: Si este ibquery es actualizable dependerá de si la vista es actualizable, que básicamente es una vista que obtiene datos de una sola tabla sin agrupar y sin campos calculados. Hasta luego. ;) |
ok Jachguate.. voy a probar ... entonces ya me di cuenta de mi error... yo acia esto
primero creaba la vista con el Ibquery y luego ejecutaba este ibquery esperando que me mostrara la informacion.. pero con el ejemplo ya me quedo claro... entonces voy a necesitar 2 querys... uno para la vista y otro para hacer referencia a la vista cierto??? |
Cita:
Es decir quiero crear una vista para modificar informacion de alumnos... y el parametro que le quiero pasar es la matricula del alumno. y en base a esta matricula mi vista se debe generar... pero como le paso el parametro antes de abrirla??? |
No existen tal cosa como vístas con parámetros.
Podes filtrar el resultado via predicados, al igual que con las tablas. De hecho, en términos prácticos, para las consultas una vista se maneja igual que una tabla.
Hasta luego. ;) |
lo que podes hacer, es generar una procidimiento almacenado para que te genere consulta recibiendo parámetros.
Esta exiplicado muy bien en el libro "la cara oculta de Delphi 4" de Ian Marteen. |
Cita:
|
Puedes crear consultas asi, la idea de esta consulta es devolver todas las personas que nacieron entre dos fechas (puede haber algun error de sintaxis, la estoy inventando, válido FB/IB).
NO es una vista, claro, es solo una consulta con parámetros que se ejecuta en el servidor y devuelve un listado, pero puede ser muy útil. |
Hola CRandel.
El código que has publicado funcionará en interbase/firebird, pero no es "general". Dado que estamos en el foro de Conexión, pues no quise publicar algo tan específico para un motor. Por otro lado, dentro del procedimiento no te queda de otra que "filtrar" usando predicados... así que no veo la ventaja sobre el uso de una vista normal filtrada también por esa vía. Me parece que la verdadera ventaja de los procedimientos almacenados que retornan cursores de ib/fb radica en la capacidad de realizar cálculos, manipulaciones y filtros complejos sobre los datos en el propio servidor, cosa que es muy dificil en una vista (a menos que se trate de oracle, donde estoy convenciendome que poco es lo que no se puede hacer.. :D) Hasta luego. ;) |
Cita:
LA ventaja radica en la posibilidad de ejecutar consultas filtradas desde el mismo servidor. Mientras con las vistas no podes filtrarlas dinámicamente. Este es sólo un ejemplo sencillo, para comprender el uso. Obviamente el uso conviene mas cuando uno hace cálculos y otras comprobaciones, asi justamente lo uso yo. Un caso que comunmente uso, es los valores NULL que te devuelve un campo con SUM, por el valor cero. y asi hay un monton de cosas que se pueden lograr. No es la unica forma de hacerlo tampoco, sólo queria introducir una alternativa de solución y que cada uno elija la que le parezca más apropiada. |
La franja horaria es GMT +2. Ahora son las 02:45:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi