Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 08-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.628
Caral Va por buen camino
Crear vista en Firebird

Hola
Como sabéis estoy haciendo algunas pruebas con firebird respecto a Access.
Ahora tengo una consulta relacionada con lo que dicen se llaman Vistas.
Me explico:
En Access se puede crear una consulta con el creador de consultas que trae el mismo.
Una vez hecha esta consulta se puede utilizar en el programa como una tabla mas, osea se puede usar un table para enlazarla incluso hacer un master detail con la misma.
Bueno, a la hora de pasar las tablas de access a Firebird estas consultas pueden quedar como tablas pero no se actualizan como consultas.
Pues bien, la pregunta es esa:
Como se puede hacer lo mismo en Firebird, crear una consulta y usarla como una tabla.?
Es posible, hacerlo en IbExpert.?
Gracias.
Saludos
Responder Con Cita
  #2  
Antiguo 08-01-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.659
maeyanes Va por buen camino
Hola...

Si es posible...

Ahora, mediante DDL se usa la sentencia CREATE VIEW...

Más o menos así...

Código SQL [-]
create view NombreVista (
lista de campos
)
as
select campos from tabla

Ya luego esta vista la puedes usar en un select de forma normal...

Código SQL [-]
select campo1, campo2 from NombreVista where campo2 = x

Saludos...

Última edición por maeyanes fecha: 08-01-2008 a las 19:07:54.
Responder Con Cita
  #3  
Antiguo 08-01-2008
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 873
Héctor Randolph Va por buen camino
Solamente agregar que una vista se comporta como una tabla, aunque en realidad lo único que hace es tomar datos de una o más tablas y mostrarlos en una consulta. Este mecanismo puede servir para ocultar el contenido real de una tabla o bien para mostrar únicamente los campos que nos interesan a un determinado usuario. Por ejemplo, si yo no deseo que un usuario conozca la forma en que se almacenan los datos internamente, puedo crear una vista y darle solamente permisos de consulta sobre la vista y no sobre las tablas reales.

Las vistas por default son solamente de lectura, aunque pueden definirse también de tal manera que nos permitan insertar, modificar y eliminar registros a través de ellas. Para hacer una vista modificable (lectura/escritura) es necesario definir triggers en la propia vista BEFORE INSERT, BEFORE UPDATE, BEFORE DELETE, según sea el caso. por medio de los triggers debemos indicar de qué manera serán almacenados los datos en sus correspondientes tablas de origen. Esto es necesario porque la información en principio puede tomarse y almacenarse en diferentes tablas.

Saludos
__________________
Componentes del club (CCD) | TeraWiki
Responder Con Cita
  #4  
Antiguo 08-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.628
Caral Va por buen camino
Hola
Muchas gracias por la explicacion.
Una consulta mas.
Ya se como crear las vistas, ahora en vez de usar un query para llamarlas quiero usar un table, como una tabla mas, esto por que me permite el uso de master detail, se puede?.
Saludos
Responder Con Cita
  #5  
Antiguo 08-01-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.659
maeyanes Va por buen camino
Hola...

Con los queries (usando los IBX) también puedes hacer MasterDetail...

La técnica es...

Pones dos TIBQuery en una forma o módulo de datos, con sus respectivos TDataSource. Los configuras como ya sabes...

En el TIBQuery que va a servir de detalle, la consulta debe ser del tipo:

Código SQL [-]
select campos from tabla where id_padre = :id_padre

Ahora, en la propiedad DataSource, seleccionas el TDataSource asociado al TIBQuery Master...

Solo debes procurar que el campo que vas a usar para hacer el enlace se llame igual al que usas como parámetro en la consulta del TIBQuery padre:

Código SQL [-]
select id_padre, campo1 from TablaPadre


Saludos...

Última edición por maeyanes fecha: 08-01-2008 a las 20:17:40. Razón: Corregido el nombre de la propiedad DataSource
Responder Con Cita
  #6  
Antiguo 08-01-2008
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 873
Héctor Randolph Va por buen camino
Por medio de un Query también puedes establecer una relación maestro/detalle. Por lo regular los componentes Query tienen una propiedad llamada DataSource que funciona como el MasterSource.

En el query detalle coloca la propiedad DataSource apuntando al query Maestro, después establece la relación en la sentencia SQL del detalle haciendo referencia al campo llave que los une. Por ejemplo:

Código SQL [-]
 SELECT * FROM tabla_detalle WHERE campo_llave_detalle=:campo_llave_maestro;

No importa si los campos llave maestro y detalle se llaman igual, por ejemplo:
Código SQL [-]
 SELECT * FROM tabla_detalle WHERE campo_llave=:campo_llave;

De esta forma, los campos del query detalle se irán filtrando según el registro seleccionado en el query maestro.

Saludos
__________________
Componentes del club (CCD) | TeraWiki
Responder Con Cita
  #7  
Antiguo 08-01-2008
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 873
Héctor Randolph Va por buen camino
Parece que hoy estoy muy lento para responder
__________________
Componentes del club (CCD) | TeraWiki
Responder Con Cita
  #8  
Antiguo 08-01-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.628
Caral Va por buen camino
Hola
Muchas gracias, sois muy amables los dos.
Voy a intentarlo.
Saludos
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear Vista a tabla con campo calculado amadis SQL 3 18-09-2007 22:22:24
Crear proceso desde servicio en windows vista cheke API de Windows 1 09-08-2007 02:31:57
Firebird y Vista KAYO Firebird e Interbase 1 19-07-2007 16:01:11
Firebird 1.5.4 funciona en Win Vista pero Firebird 2.0.1 NO !!! Hagen Firebird e Interbase 5 19-05-2007 21:17:54
Firebird en Windows Vista capo979 Varios 0 02-05-2007 15:41:31


La franja horaria es GMT +2. Ahora son las 12:42:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi