Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-07-2003
charly charly is offline
Miembro
 
Registrado: may 2003
Posts: 36
Poder: 0
charly Va por buen camino
Vistas con Firebird

Hola a tod@s.
He estando comparando consultas con el IBManager y he optenido mejor respuesta con las vistas que con las consultas directa a una tabla. El problema que se me plantea es que al hacer un insert en la vista he introduzco el codigo del cliente, no me aparecen sus datos en los DBEdit hasta que hago un post, ya que los datos los lee de la tabla de clientes que esta agregada con un LEFT JOIN.

Alguien me podria echar una mano?

La vista en cuestion en la siguiente:

CREATE VIEW VER_GES_CAB_PEC (
EMPRESA,
EJERCICIO,
CANAL,
SERIE,
TIPO_DOC,
NUMERO,
FECHA,
S_PEDIDO,
S_FECHA,
TERCERO,
TERCERO_NOMBRE,
TERCERO_TITULAR,
TERCERO_ZONA,
TERCERO_GRUPO,
TERCERO_PROVINCIA,
TERCERO_DNI,
TERCERO_TIPO,
TERCERO_MODO_IVA,
DIRECCION,
DIRECCION_TITULO,
DIRECCION_POBLACION,
DIRECCION_CP,
DIRECCION_PROVINCIA,
DIRECCION_PAIS,
FPAGO,
AGENTE,
TRANSPORTISTA,
DIVISA,
TARIFA,
PORTES,
PORTES_TIPO,
GASTOS,
P_DTO_FINAN,
FECHA_ENTREGA,
R_FENTREGA,
MODO_IVA,
NOTAS,
TOTAL,
CAMPANYA,
CAMPANYA_TITULO,
ESTADO,
USUARIO,
MARCA,
BULTOS,
KILOS,
IMPRESO,
EMAIL)
AS
SELECT FIRST 1 SKIP 25
GES_CAB_DOCUMENTOS.EMPRESA,
GES_CAB_DOCUMENTOS.EJERCICIO,
GES_CAB_DOCUMENTOS.CANAL,
GES_CAB_DOCUMENTOS.SERIE,
GES_CAB_DOCUMENTOS.TIPO_DOC,
GES_CAB_DOCUMENTOS.NUMERO,
GES_CAB_DOCUMENTOS.FECHA,
GES_CAB_DOCUMENTOS.S_PEDIDO,
GES_CAB_DOCUMENTOS.S_FECHA,
GES_CAB_DOCUMENTOS.TERCERO,
TER_CLIENTES.NOMBRE,
TER_CLIENTES.TITULAR,
TER_CLIENTES.ZONA,
TER_CLIENTES.GRUPO,
TER_CLIENTES.PROVINCIA,
TER_CLIENTES.DNI,
TER_CLIENTES.TIPO,
TER_CLIENTES.MODO_IVA,
GES_CAB_DOCUMENTOS.DIRECCION,
TER_CLIENTES_DIR.DIRECCION,
TER_CLIENTES_DIR.POBLACION,
TER_CLIENTES_DIR.CP,
TER_CLIENTES_DIR.PROVINCIA,
TER_CLIENTES_DIR.PAIS,
GES_CAB_DOCUMENTOS.FPAGO,
GES_CAB_DOCUMENTOS.AGENTE,
GES_CAB_DOCUMENTOS.TRANSPORTISTA,
GES_CAB_DOCUMENTOS.DIVISA,
GES_CAB_DOCUMENTOS.TARIFA,
GES_CAB_DOCUMENTOS.PORTES,
GES_CAB_DOCUMENTOS.PORTES_TIPO,
GES_CAB_DOCUMENTOS.GASTOS,
GES_CAB_DOCUMENTOS.P_DTO_FINAN,
GES_CAB_DOCUMENTOS.FECHA_ENTREGA,
GES_CAB_DOCUMENTOS.R_FENTREGA,
GES_CAB_DOCUMENTOS.MODO_IVA,
GES_CAB_DOCUMENTOS.NOTAS,
GES_CAB_DOCUMENTOS.TOTAL,
GES_CAB_DOCUMENTOS.CAMPANYA,
EMP_CAMPANYAS.TITULO,
GES_CAB_DOCUMENTOS.ESTADO,
GES_CAB_DOCUMENTOS.USUARIO,
GES_CAB_DOCUMENTOS.MARCA,
GES_CAB_DOCUMENTOS.BULTOS,
GES_CAB_DOCUMENTOS.KILOS,
GES_CAB_DOCUMENTOS.IMPRESO,
GES_CAB_DOCUMENTOS.EMAIL
FROM GES_CAB_DOCUMENTOS
LEFT JOIN TER_CLIENTES ON (GES_CAB_DOCUMENTOS.EMPRESA = TER_CLIENTES.EMPRESA) AND (GES_CAB_DOCUMENTOS.TERCERO = TER_CLIENTES.CODIGO)
LEFT JOIN TER_CLIENTES_DIR ON (GES_CAB_DOCUMENTOS.EMPRESA = TER_CLIENTES_DIR.EMPRESA) AND (GES_CAB_DOCUMENTOS.TERCERO = TER_CLIENTES_DIR.CLIENTE) AND (GES_CAB_DOCUMENTOS.DIRECCION = TER_CLIENTES_DIR.CODIGO)
LEFT JOIN EMP_CAMPANYAS ON (GES_CAB_DOCUMENTOS.EMPRESA = EMP_CAMPANYAS.EMPRESA) AND (GES_CAB_DOCUMENTOS.CAMPANYA = EMP_CAMPANYAS.CODIGO)
WHERE
(
(GES_CAB_DOCUMENTOS.TIPO_DOC = 'PEC')
);

Como informacion de los tiempos en las consultas, los resultados son:
select * from VER_GES_CAB_PEC
where EMPRESA = 2
and EJERCICIO = 2003
and CANAL = 1
and SERIE = 'B'

Preparar : 361
Ejecutar : 140
Tiempo promedio : 6,36 ms.

--
select * from ges_cab_documentos
where EMPRESA = 2
and EJERCICIO = 2003
and CANAL = 1
and SERIE = 'B'
and TIPO_DOC='PEC'

Preparar : 451
Ejecutar : 210
Tiempo promedio : 9,55 ms.

--
Osea que la vista es mas rápida que la consulta a la tabla. Será seguramente por el SELECT FIRST 1 SKIP 25.

Un saludo.
Responder Con Cita
  #2  
Antiguo 20-08-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Wink Okii

Usted lo ha dicho, solo te desplegará los primeros 25 registros, es por eso que es más rápido....
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 10:30:42.


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