Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2008
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
Como se ejecutan las vistas ....?

tengo una vista en mi bd ...algo asi

select * from clientes
order by nombre

ok esta es una vista digamos general de todos mis clientes, pues bien lo ocurre es que cada vez que la llamo filtrada desde mis programas sospecho que primero ejecuta toda la consulta para luego filtrarla, eso no es optimo lo ideal seria algo asi

select * from clientes
where id_cliente=Parametro_Id

asi a nivel de servidor solo se busca el cliente buscado con el parametro_id

el caso es que con las vistas segun parece no se puede usar variables o mejor dicho parametros con lo procedimientos almacenados si .... esa son las preguntas:

1. en efecto la primera consulta llama todos los registros de la tabla pero si la llamo desde un programa o por ejemplo crystal report restringiendo a un solo cliente, aun asi primero el servidor ejecuta la consulta general para luego filtrarla ...es esto cierto ...?

2. se pueden usar parametros a una vista ....?

Gracias a todos...
Responder Con Cita
  #2  
Antiguo 18-06-2008
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 485
Poder: 17
Neeruu Va por buen camino
Cool Como se ejecutan las vistas ....?

Hola como estas??


Que yo sepa y por lo menos en interbase 7.1 no se puede pasar parametros a las vistas!!!!

Los que si puedes hacer y que lo he usado es recuperar los datos de un procedimiento almacenado con el componente IB_Cursor...

El unico inconveniente que el IB_Cursor te va devolviendo los datos a medida que recorres el dataset resultante, por lo tanto si quisieras mostrar el resultado en una dbgrid, despues de abrirlo tendrias que recorrer todo el dataset resultante para traer todos los registros....



Espero este claro....

Saluda Atte Neeruu!!!

Última edición por Neeruu fecha: 18-06-2008 a las 01:58:57. Razón: Correccion de Horror Ortografico
Responder Con Cita
  #3  
Antiguo 18-06-2008
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Poder: 22
pcicom Va por buen camino
Cuando creas una vista en la BD unicamente se graba la DEFINICION, por lo que cuando la mandas llamar es cuando se realiza la consulta.

EJEMPLO

Código SQL [-]

create view VENCIDOS
  SELECT CLIENTE,SALDO,ESTATUS 
        FROM CARTERA 
         WHERE ESTATUS='V'


Esto crea una Vista llamada VENCIDOS

De tal manera que cuando la quieras LLAMAR la podrias hacer como sigue

Código SQL [-]

SELECT * from VENCIDOS 
  WHERE SALDO BETWEEN 1000 AND 5000

Te devolveria todos los campos definidos en tu VISTA VENCIDOS pero unicamente te traeria a aquellos que el saldo este entre 1000 y 5000

Desde mi punto de Vista Las vistas te ayudan a evitar TENER un buen rollo en tus comandos SQL limitando unicamente a tus campos requeridos..

Las vistas las puedes considerar como si fuera una TABLA en tu BD, pero no son una TABLA ya que unicamente se graba la DEFINCION..

Otro ejemplo

Código SQL [-]

SELECT a.CLIENTE,a.SALDO,clientes.NOMBRE FROM VENCIDOS a 
    LEFT JOIN clientes ON a.CLIENTE=clientes.CLIENTE


Espero te haya aclarado un poco el concepto o puedes accessar este link..

http://www.ibphoenix.com/main.nfs?a=...qlref#RSf20247
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton
Responder Con Cita
  #4  
Antiguo 18-06-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Creo que tus conclusiones (1) y (2) son correctas.
¿Puedes utilizar Funciones y/o Stored Procedures?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 18-06-2008
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
si puedo neftali

Si puedo usar funciones(aun no se como se usan) y procedimientos almacenados y eso es lo que quiero ver, cual es la alternativa optima en cuanto a recursos se refiere, en la actualidad la aplicacion que estoy en desarrollo tiene muy pocos terminales pero aun asi debo pensar en funcion de crecimiento futuro y mayor volumen de solicitudes de datos a tan fin pues lo que quiero es optimizar al maximo ...

por ejemplo la vista en cuestion a punta de joins enlaza 4 tablas (lo cual es bastante) si a esto añades el hecho de que segun parece la definicion de la vista cuando se ejecuta carga todos los datos para luego filtrarlos segun el criterio de mi solicitud .... pues ufff muchos datos imaginate 4 tablas enlazadas para n cantidad de registros repito ufff ....

Gracias .....
Responder Con Cita
  #6  
Antiguo 18-06-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo creo que puedes usar cualquiera de los dos. A ambos les puedes pasar los parámetros necesarios para que el filtrado de datos se realice en el servidor.
Personalmente trabajando con SQL Server y ADO he acabado utilizando funciones, ya que se "llevaban" mejor con los diferentes tipos de cursores que maneja ADO.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Lineas que no se ejecutan Bauhaus1975 Varios 2 23-06-2006 19:14:56
Saber q programas se ejecutan Diavlo Varios 1 13-05-2006 21:41:35
Como trabajar con vistas chalys SQL 4 08-08-2005 04:00:04
¿Como se utilizan las Vistas en Delphi? (VIH)Lestat Conexión con bases de datos 9 13-07-2005 05:26:43
Como crear vistas en Paradox? chona Tablas planas 3 17-05-2004 22:36:47


La franja horaria es GMT +2. Ahora son las 21:16:18.


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