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.

Sobre MemdatSet

Foro de Xailer profesional en español
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Sobre MemdatSet

Mensaje por Bingen Ugaldebere »

Hola Ignacio un par de preguntas sobre las modificaciones que hicisteis
en esta clase.
En la versión 1.4 me andaba sin problemas pero al cambiar a la 1.5 me
han fallado todos los que tení­a y el error salta en el METHOD FieldGet(
n ) el Return ::aWork[ nRecno, n ] me da error ya que n se sale de los
elementos de la tabla y casca, asi que lo he cambiado por:
RETURN If(n<=Len(::aWork[ nRecno] ), ::aWork[ nRecno, n ], Nil)
y ya no me casca, aunque es un poco chapucero.
Otra cosa más en el METHOD Open si el array viene vací­o no puede tomar
los Valtype de él sino que directamente ponéis
::lReadOnly := .T.
LogDebug( "XAILER: TMemDataSet:'aData' parameter empty with no
structure defined. :lReadOnly set to TRUE." )
Pero si antes de hacer el Open ya he hecho oSender:GetStructFrom
pasándole todos los tipos y tamaños, antes funcionaba y ahora ya no le vale.
Evidentemente deberí­a de prevalecer el GetStrucFrom creo yo, bastarí­a
con hacer esto en el METHOD Open
If Len(::aFields)=0
::lReadOnly := .T.
LogDebug( "XAILER: TMemDataSet:'aData' parameter empty with no
structure defined. :lReadOnly set to TRUE." )
Endif
Pero entonces hay que controlar que si el set esta vací­o no se pueda
hacer un Edit lo cual esta implementado ahora de forma que da un error
de la aplicación con ::NewError( LT( XA_MSG_SET_VACIO_EDIT_NO_PERMITIDO
) ) lo cual si lo quito no casca el programa pero me entra en una
lí­nea de edición fantasma que ya no se como quitar.
Gracias por tu atención y salu2.
Responder