Página 1 de 1

Sobre MemdatSet

Publicado: Mar Ago 21, 2007 11:23 am
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.