In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Error al Borrar un Registro en TMemDataSet Aeval( ::aData, {|v| v[ Len( v ) ] -- }, nRecno )

Foro público de Xailer en español
Responder
Avatar de Usuario
gabo1
Mensajes: 131
Registrado: Lun Oct 13, 2014 9:42 am

Error al Borrar un Registro en TMemDataSet Aeval( ::aData, {|v| v[ Len( v ) ] -- }, nRecno )

Mensaje por gabo1 »

Hola
Me esta saliendo un error al borrar un registro en un TMemDataSet en el siguiente codigo que esta en el
metodo METHOD Delete() CLASS XMemRecords

Código: Seleccionar todo

METHOD Delete() CLASS XMemRecords
   LOCAL nRecno

   nRecno := ::OrgRecno()
   ADel( ::aData, nRecno )
   ASize( ::aData, Len( ::aData ) - 1 )
//   Aeval( ::aData, {|v,e| v[ -1 ] -- }, nRecno ) IOZ: Harbour lo requiere
   Aeval( ::aData, {|v| v[ Len( v ) ] -- }, nRecno )  // AQUI MARCA EL ERROR!
   IF !::aData == ::aWork
      ADel( ::aWork, ::Recno )
      ASize( ::aWork, Len( ::aWork ) - 1 )
   ENDIF
   ::RecCount := Len( ::aWork )
   IF ::Recno > ::RecCount
      ::Eof := .T.
   ENDIF
RETURN .T.

Subsistema: BASE
 Código de error: 1087
          Estado: .F.
     Descripción: Error de argumento
       Operación: --
      Argumentos:  [ 1] = Tipo: C Valor: 14:21:30
         Fichero: 
 Código error SO: 0
 Pila de llamadas:
  (b)XMEMRECORDS_DELETE (209)
  AEVAL (0)
  TMEMRECORDS:DELETE (209)
  TMEMDATASET:DELETE (651)
Alguna idea?
Es correcto el operador -- (menos menos) sin ninguna variable

Saludos
Ariel69

Re: Error al Borrar un Registro en TMemDataSet Aeval( ::aData, {|v| v[ Len( v ) ] -- }, nRecno )

Mensaje por Ariel69 »

Hola,
me parece que deberias eliminar el espacio y quedaria asi :

Aeval( ::aData, {|v| v[ Len( v ) ]-- }, nRecno )
o
Aeval( ::aData, {|v| v[ Len( v ) ] - 1 }, nRecno )

Saludos
Avatar de Usuario
gabo1
Mensajes: 131
Registrado: Lun Oct 13, 2014 9:42 am

Re: Error al Borrar un Registro en TMemDataSet Aeval( ::aData, {|v| v[ Len( v ) ] -- }, nRecno )

Mensaje por gabo1 »

GRacias por contestar, Pero no es el caso.. Al parecer no se actualiza los registros del memdataset, y por eso marca el error al restar menos uno.. sigo revisando :-(
Responder