Power Builder - Se cierra el cursor con FETCH

   
Vista:
Imágen de perfil de antonio

Se cierra el cursor con FETCH

Publicado por antonio (1114 intervenciones) el 16/09/2015 03:02:55
Un abrazo a todos...

Tengo un problemita con un cursor, resulta que estoy ejecutando el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
date dtFecha = Date('14/09/2015')
string sVisualiza = 'N',sCorte ='N'
long nCaja = 1
 
declare puntero cursor for
 
	 Select ventas.codigo,ventas.cantidad,ventas.descr
		from ventas
		where ((ventas.feccapt =: dtFecha ) and
				( ventas.visualiza =: sVisualiza ) and
				( ventas.caja =: nCaja ) and
				( ventas.corte =: sCorte));
 
open puntero ;
 
fetch puntero into :sCodigo,:dCantidad,:sDescr; // Aquí si recupera los datos del primer registro que encuentra
 
		do while SQLCA.SQLCode = 0
			f_desplaza(sCodigo,dCantidad,asFecha,sDescr) // Guardo los datos con update a un DataStore
				fetch puntero into :sCodigo,:dCantidad,:sDescr; // Aquí ocurre el error y marca Cursor is not open
		loop
 
close puntero ;

Estoy utilizando una base de datos de MYSQL, y cuando trata de recuperar los demás registro siempre el regresa el error de Cursor is not open.

¿Alguien sabe a que se debe esto?...

Tengo otro proceso de recuperación de registros pero en otras tablas y en el mismo aplicativo y no hay problema.

ya revise todos los registro y todos cumplen con las condiciones de los valores que le envío en las variables.

De antemando, les agradezco su apoyo y comentarios
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Leonardo Daniel A.

Se cierra el cursor con FETCH

Publicado por Leonardo Daniel A. (76 intervenciones) el 16/09/2015 03:21:36
y donde declaras estas variables ??

:sCodigo,:dCantidad,:sDescr


y son del mismo tipo ? creo que cantidad debe ser integer o long no decimal

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de antonio

Se cierra el cursor con FETCH

Publicado por antonio (1114 intervenciones) el 16/09/2015 18:39:59
Hila Leonardo:

Gracias por tu apoyo...

no puse la declaración de las variables en ejemplo por cuestiones de demostración, pero las variables se declaran en el mismo código de la siguiente manera

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
date dtFecha = Date('14/09/2015')
string sVisualiza = 'N',sCorte ='N'
long nCaja = 1
 
string sCodigo,sDescr
dec {3} dCantidad
 
declare puntero cursor for
 
	 Select ventas.codigo,ventas.cantidad,ventas.descr
		from ventas
		where ((ventas.feccapt =: dtFecha ) and
				( ventas.visualiza =: sVisualiza ) and
				( ventas.caja =: nCaja ) and
				( ventas.corte =: sCorte));
 
open puntero ;
 
fetch puntero into :sCodigo,:dCantidad,:sDescr; // Aquí si recupera los datos del primer registro que encuentra
 
		do while SQLCA.SQLCode = 0
			f_desplaza(sCodigo,dCantidad,dFecha,sDescr) // Guardo los datos con update a un DataStore
				fetch puntero into :sCodigo,:dCantidad,:sDescr; // Aquí ocurre el error y marca Cursor is not open
		loop
 
close puntero ;

Nuevamente agradezco tu intervención
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se cierra el cursor con FETCH

Publicado por Manu (39 intervenciones) el 17/09/2015 09:19:38
muestra el sqlca.sqlcode despues hacer el fetch dentro del bucle para ver si te da alguna pista.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar