Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-03-2005
dunia_lv dunia_lv is offline
Miembro
 
Registrado: feb 2005
Posts: 60
Poder: 20
dunia_lv Va por buen camino
Cursores...

Hola a todos:

Mi problemas es el siguiente. Necesito hacer algunas consultas dependientes, es decir, yo quiero que dado el IdModRpt, me devuelva todas los IdArea que están asociados a él, luego dada cada una de esos IdArea quiero que me devuelva todos los IdUC que tienen esa area y que dada también las mismas IdArea me devuelva todos los IdFam que los contienen y luego recorrer cada una de las familias. Bien eso sé que puedo hacerlo de forma separado y recorre cada consulta hasta llegar al resultado final, pero me han dicho que lo mejor sería trabajar con cursores algo que nunca he hecho y aunque he tratado de realizarlo yo sola no me sale de ninguna manera...que me dicen ustedes?

la configuración de las tablas es esta

tabla 1

IdModRpt
IdArea

tabla 2

IdArea
IdFam


Tabla 3

IdArea
IdUC

saludos

Dunia
Responder Con Cita
  #2  
Antiguo 05-04-2005
PeLuCa PeLuCa is offline
Miembro
 
Registrado: abr 2005
Posts: 20
Poder: 0
PeLuCa Va por buen camino
Thumbs up Memoria!!

Hola que tal, quisa sea la unica solucion si es que lo haces dentro del motor de BD, si es asi que debes hacerlo, los cursores ayudan bastante, pero consumen bastantes recursos de la maquina, quizas en el modelo que tu dices no lo sea, pero es para tener en cuenta.
Dime con que motor estas trabajando para ver si conozco la sintaxis propia de el, asi te adapto alguna solucion. Si no la mejor solucion es ver la ayuda de este, suelen ser bastante claras. Creo que todos trabajan de la misma manera, supongo, asi que de una manera general seria :

//Definimos el Cursor
DECLARE tabla1_cursor CURSOR FOR
SELECT * FROM tabla1
WHERE IdModRpt = @pMod //-> parametro del SP

//abrimos el cursor
OPEN tabla1_cursor

//primera lectura
FETCH NEXT FROM tabla1_cursor
INTO @idMod, @idArea // variables del SP, debes definirlas,
//guardamos la lectura desde el cursor

WHILE @@FETCH_STATUS = 0
BEGIN

//Aqui es el cuerpo donde tratas los datos, podrias optar por definir mas
//cursores aqui adentro pero no es recomendable.
// lo "ideal" a mi modo de ver es declarar una tabla temporal en donde
// guardes el resultado del cursor, y sobre esta tabla temporal crear
// otro cursor, y asi hasta que llegues a donde quieras.


FETCH NEXT FROM tabla1_cursor // continuacion del Ciclo
INTO @idMod, @idArea

END

CLOSE tabla1_cursor
DEALLOCATE tabla1_cursor
GO

Espero haberte aclarado algo el panorama, cualquier cosa que necesites mas ayuda, avisas. Saludos.
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 20:49:48.


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