Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2007, 17:06
Martinico
 
Fecha de Ingreso: febrero-2007
Mensajes: 182
Antigüedad: 17 años, 10 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