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

Cursores en Store procedure

Estas en el tema de Cursores en Store procedure en el foro de SQL Server en Foros del Web. ese es el código de mi store procedure, lo pongo para que lo vichen... no para mandar y que me solucionen todos mis problemas, el ...
  #1 (permalink)  
Antiguo 27/04/2007, 17:06
 
Fecha de Ingreso: febrero-2007
Mensajes: 182
Antigüedad: 17 años, 2 meses
Puntos: 0
Cursores en Store procedure

ese es el código de mi store procedure, lo pongo para que lo vichen...
no para mandar y que me solucionen todos mis problemas, el tema que teno
es que me entra en un loop, cuando ejecuto ese sp, me da un bucle infinito,
alguien sabe como "avanzo" dento del while?
ya que veo que es ese el problema:

////////////////////////////////////////////////////////


CREATE PROCEDURE CursorCliente (@FechaIni DateTime, @FechaFin DateTime )
AS
set nocount on

DECLARE @Cant varchar(10)
SET @FechaFin = Convert(Varchar(10), @FechaFin, 101) + ' 23:59:59'
SET @FechaIni = Convert(Varchar(10), @FechaIni, 101) + ' 00:00:00'


declare @paquete numeric
DECLARE PaqueteCursor CURSOR
FOR

select idClie0002 from Gestion_0003 (nolock)
join Clientes0002 (nolock) on idClie00020003=idClie0002
join DatoDial0015 (nolock) on IdCall00080015=LastCa00080003 and Produc0015<>'Solamente TDC'
join Ciudades (nolock) on CiuCas0003=id_ciu
where StSoli0003='VENTA' AND TmStmp0003>=@FechaIni AND TmStmp0003<=@FechaFin

OPEN PaqueteCursor


FETCH NEXT FROM PaqueteCursor into @Paquete
-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN


select CASE Nacion0003 WHEN 'venezolano(a)' THEN 'V' ELSE 'E' END +
dbo.PAD(NroDoc0003,'N',20) +
dbo.PAD( ISNULL(ApePat0002,'') + ' ' + ISNULL(ApeMat0002,''),'C',40) +
dbo.PAD( ISNULL(NomPri0002,'') + ' ' + ISNULL(NomSec0002,''),'C',40) +
dbo.PAD(ISNULL(ApePat0002,'') + ' ' + ISNULL(NomPri0002,''),'C',30) + ''+'Natural'+''+
dbo.PAD(ISNULL((SELECT NoTel10002 from vw_TelefonosCliente where TiTel10002='CASA' and
ClTel10002='NOR' and idCliente=idClie0002) ,''),'C',20)+dbo.PAD(ISNULL(edoCiv0003,''),'C',1)+ ''
+dbo.PAD(ISNULL(Sexo__0002,''),'C',1)+CONVERT(VARC HAR(8),ISNULL(FecNac0002,'1900-01-01'),112)+''+
dbo.PAD(ISNULL(Email10002,''),'C',40)+''+'Fecha Venc CI'+''+
dbo.PAD((SELECT NoTel10002 from vw_TelefonosCliente where TiTel10002='PERSONAL' and
ClTel10002='CEL' and idCliente=idClie0002),'C',13)
from Clientes0002 (nolock),DatoDial0015 (nolock),Gestion_0003 (nolock)

select CASE Nacion0003 WHEN 'venezolano(a)' THEN 'V' ELSE 'E' END +
dbo.PAD(NroDoc0003,'N',20) +''+dbo.PAD(ISNULL(Concas0003,''),'C',10)+''+'Siem pre'+''+'Ci atencion'+''+
dbo.PAD( ISNULL(ApePat0002,'') + ' ' + ISNULL(ApeMat0002,''),'C',40) +''+
dbo.PAD( ISNULL(NomPri0002,'') + ' ' + ISNULL(NomSec0002,''),'C',40) +
''+'direciones de la 1 a la 4'+dbo.PAD( ISNULL( Zipcas0003,''),'C',10)+''+'tel direccion y fax direccion'+''+'region'+''+
dbo.PAD( ISNULL( Paisor0003,''),'C',4)
from Clientes0002 (nolock),DatoDial0015 (nolock),Gestion_0003 (nolock)

end

set nocount off
GO
  #2 (permalink)  
Antiguo 01/05/2007, 17:03
 
Fecha de Ingreso: enero-2004
Mensajes: 310
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Cursores en Store procedure

http://www.mistrucos.net/truco-sql-s...paso-430_1.htm
__________________
Un saludo,
Trucos
Videos
  #3 (permalink)  
Antiguo 01/05/2007, 17:14
 
Fecha de Ingreso: febrero-2007
Mensajes: 182
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Cursores en Store procedure

Mirá, sé buscar en google, e internet, ya había visitado esa página
te agradezco que hayas respondido, pero se ve que no leiste bien mi mensaje o no viste lo que esa página contenía, tal vez la diseñes tu ...no importa

La pregunta es especifica, ya viche manuales de como crear cursores,
por eso esta posteada en un foro
  #4 (permalink)  
Antiguo 02/05/2007, 14:58
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: Cursores en Store procedure

FETCH NEXT FROM PaqueteCursor into @Paquete

Eso va tanto antes de entrar en el WHILE como al final del bloque del WHILE:

Código:
OPEN PaqueteCursor

FETCH NEXT FROM PaqueteCursor into @Paquete

WHILE @@FETCH_STATUS = 0
BEGIN
...
direccion y fax direccion'+''+'region'+''+
dbo.PAD( ISNULL( Paisor0003,''),'C',4)
from Clientes0002 (nolock),DatoDial0015 (nolock),Gestion_0003 (nolock)

FETCH NEXT FROM PaqueteCursor into @Paquete
END
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 12:55.