Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ayuda con cursor

Estas en el tema de Ayuda con cursor en el foro de SQL Server en Foros del Web. saludos a todos espero alguien me pueda orientar tengo un sp el cual me regresa una consulta el cual le doy un valor de entrada ...
  #1 (permalink)  
Antiguo 05/08/2010, 09:17
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Ayuda con cursor

saludos a todos espero alguien me pueda orientar tengo un sp el cual me regresa una consulta el cual le doy un valor de entrada
sp_prueba @folio posteriomente hago un cursor donde cargo todos los folios y se los voy pasando al sp pero tengo
un problema en el resultado no me envia un listado unificado con la integracion de todos los folios me envia separado folio por folio
alguien sabra a que se debe esto
  #2 (permalink)  
Antiguo 05/08/2010, 10:57
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con cursor

Es como adivinar, porque un meteoro se acaba de estrellar con Neptuno, la verdad con los datos que nos das, solo estariamos "inventando" soluciones.

¿Podrias darnos mas informacion?, Edicion-Version de tu motor, que hace exactamente tu procedimiento, de poderse, que nos publiques el mismo.

Ya hemos comentado que los CURSORES no son recomendados en SQL Server.
  #3 (permalink)  
Antiguo 05/08/2010, 11:20
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Ayuda con cursor

Cita:
Iniciado por iislas Ver Mensaje
Es como adivinar, porque un meteoro se acaba de estrellar con Neptuno, la verdad con los datos que nos das, solo estariamos "inventando" soluciones.

¿Podrias darnos mas informacion?, Edicion-Version de tu motor, que hace exactamente tu procedimiento, de poderse, que nos publiques el mismo.

Ya hemos comentado que los CURSORES no son recomendados en SQL Server.

perdon tal ves si muy escueto en mi problema jeje bueno digamos que tengo un asi

create procedure sp_borrame
@folio varchar(50)
as
select *
from identificacion
where FOL_ID=@folio

que este sp me al ejecutarlo
exec sp_borrame '15037VASG001110'


el resultado es algo asi

datato1 dato2 datos3
1 1 1


Y al meterlo en un cursor de la siguiente manera



declare @folio varchar(50)





DECLARE CUR1 cursor for
select FOL_ID
from folios





OPEN CUR1


FETCH NEXT FROM CUR1
INTO @folio
WHILE @@FETCH_STATUS = 0

BEGIN




exec sp_borrame @folio



FETCH NEXT FROM CUR1
INTO @folio


END

CLOSE CUR1
DEALLOCATE CUR1
------------------------------------------------------------------------------------
El resultado que me envia es el siguiente

datato1 dato2 datos3
1 1 1

datato1 dato2 datos3
2 2 2

datato1 dato2 datos3
3 3 3

datato1 dato2 datos3
4 4 4

Y lo que necesito es algo asi

datato1 dato2 datos3
1 1 1

2 2 2

3 3 3

4 4 4


Espero haber sido mas claro ahora por cierto estoy trabajando en sql server 2008
  #4 (permalink)  
Antiguo 05/08/2010, 12:34
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con cursor

¿Que te da esto?

Código SQL:
Ver original
  1. SELECT FOL_ID
  2. FROM folios
  #5 (permalink)  
Antiguo 05/08/2010, 12:39
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Ayuda con cursor

Cita:
Iniciado por iislas Ver Mensaje
¿Que te da esto?

Código SQL:
Ver original
  1. SELECT FOL_ID
  2. FROM folios

Lo que me da la consulta inicial del cursor:

select FOL_ID
from folios

Es la serie de folios que buscara mi sp_prueba el cual esta dentro del cursor hize ese ejemplo sencillo porque en escencia ese es mi problema al pasarle al cursor la seria de folios para que los vaya consultando el SP_prueba lo hace pero el resltado me lo da como si fueran consultas separadas y necesuto el resultado en una sola lista
  #6 (permalink)  
Antiguo 05/08/2010, 12:53
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con cursor

Pues sigo sin entender, veamos, la ejecucion del procedure:

exec sp_borrame '15037VASG001110'

¿te da mas de un registro? o bien, ¿te da un solo registro?
  #7 (permalink)  
Antiguo 05/08/2010, 12:56
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Ayuda con cursor

Cita:
Iniciado por iislas Ver Mensaje
Pues sigo sin entender, veamos, la ejecucion del procedure:

exec sp_borrame '15037VASG001110'

¿te da mas de un registro? o bien, ¿te da un solo registro?

al ejecutar exec sp_borrame '15037VASG001110' me regresa un solo registr por eso lo meti en el cursor para iterar todos los folios pero logicamente el resultado son muchas consultas como si ejecutara muchas veces el exec sp_borrame '15037VASG001110' pero necesito que en el resultado solo aparesca una sola vez el encabezad con todo el contenido en el cuerpo del listado
  #8 (permalink)  
Antiguo 05/08/2010, 13:06
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con cursor

A ver compañero, creo que no nos ponemos de acuerdo o bien, no me estas dando TODA la informacion.

¿Que caso tiene meter la ejecucion de procedimiento que solo hace un simple SELECT en un cursor?

Te pregunte: ¿Que te da esto?

Código SQL:
Ver original
  1. SELECT FOL_ID
  2. FROM folios

Que crea la lista de registros en tu cursor, para posteriormente en el mismo loop del cursor, solo se lo pasas a tu procedimiento que hace un simple SELECT

¿Cual es entonces el objetivo?
  #9 (permalink)  
Antiguo 05/08/2010, 14:07
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Ayuda con cursor

Cita:
Iniciado por iislas Ver Mensaje
A ver compañero, creo que no nos ponemos de acuerdo o bien, no me estas dando TODA la informacion.

¿Que caso tiene meter la ejecucion de procedimiento que solo hace un simple SELECT en un cursor?

Te pregunte: ¿Que te da esto?

Código SQL:
Ver original
  1. SELECT FOL_ID
  2. FROM folios

Que crea la lista de registros en tu cursor, para posteriormente en el mismo loop del cursor, solo se lo pasas a tu procedimiento que hace un simple SELECT

¿Cual es entonces el objetivo?
Compañero el proceso en si es muy grande es por eso que lo simplifique con el ejemplo del sp_prueba pero que en escencia es lo que necesito hacer el pasarle los parametros por medio del cursor a un sp que recibe los folios
  #10 (permalink)  
Antiguo 05/08/2010, 14:53
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con cursor

Volvamos a la discusion, ¿como es que generas esos registros del CURSOR?
  #11 (permalink)  
Antiguo 05/08/2010, 15:06
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Ayuda con cursor

Me parece que algo no esta bien en tu codigo (parece un SP recursivo), pero respondiendo a tu consulta inicial, creo que si agregas esto:
Código SQL:
Ver original
  1. INSERT INTO temp EXEC sp_borrame @folio
La tabla temp debe tener el mismo formato que lo que devuelve tu SP.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #12 (permalink)  
Antiguo 06/08/2010, 08:04
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Ayuda con cursor

Cita:
Iniciado por flaviovich Ver Mensaje
Me parece que algo no esta bien en tu codigo (parece un SP recursivo), pero respondiendo a tu consulta inicial, creo que si agregas esto:
Código SQL:
Ver original
  1. INSERT INTO temp EXEC sp_borrame @folio
La tabla temp debe tener el mismo formato que lo que devuelve tu SP.
Excelente respuesta flavio muchas gracias
  #13 (permalink)  
Antiguo 06/08/2010, 11:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con cursor

No esta demas

http://www.sindominio.net/ayuda/preg...eligentes.html
  #14 (permalink)  
Antiguo 06/08/2010, 11:30
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Ayuda con cursor

Cita:
Iniciado por iislas Ver Mensaje

Sin comentarios respecto a tus respuestas y nuevamente felicito a la gente que si aporta

Etiquetas: cursor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:56.