Página 1 de 1

Error No exported method GOTOP al navegar por TMemDataset ***SOLUCIONADO***

Publicado: Mar Oct 07, 2014 1:37 pm
por jasm
Hola,
Estoy desde hace un rato dándole vueltas a este error que me da al intentar navegar por un TMemDataset (Xailer Ver. 3.0.1 y no veo donde me equivoco:
----------------------- Información detallada del error -----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: No exported method
Operación: GOTOP
Argumentos: [ 1] = Tipo: U Valor: NIL
Fichero:
Código error SO: 0
Pila de llamadas:
GOTOP (0)
TMEMDATASET:GOTOP (693)
GRUPOBRW:EDITAR (120)
TTOOLBUTTON:ONCLICK (0)
(b)XTOOLBUTTON (41)
TTOOLBUTTON:CLICK (0)
El código:
::dsZonaGrupoConexion:goTop()
while !::dsZonaGrupoConexion:eof()
.
.
.
.
Comprobado que está abierto el TMemDataSet.
Saludos y gracias.

Error No exported method GOTOP al navegar por TMemDataset ***SOLUCIONADO***

Publicado: Mar Oct 07, 2014 2:02 pm
por ignacio
Buenos dí­as,
El módulo TMemDataest solo tiene 282 lí­neas. Parece que se está enlazando otra clase con el mismo nombre.
Un saludo

Error No exported method GOTOP al navegar por TMemDataset ***SOLUCIONADO***

Publicado: Mar Oct 07, 2014 3:32 pm
por jasm
Hola Ignacio,
Gracias por la respuesta.
El método donde se produce el error es este:
METHOD Nuevo( oSender ) CLASS grupoBrw
with object grupoEdit():New()
:cText := "Nuevo Grupo"
if :showmodal() == mrOk
::grupoConexion:addNew()
::grupoConexion:nombre := :edNombre:value
::grupoConexion:baja := 0
::grupoConexion:Update()
::zonaGrupoConexion:aSQLParams:={-1}
::zonaGrupoConexion:lOpen := .t.
::lastIdQuery:lOpen := .t.
:dsZonaGrupoConexion:goTop()
while !:dsZonaGrupoConexion:eof()
if !:dsZonaGrupoConexion:baja
::zonaGrupoConexion():addNew()
::zonaGrupoConexion:id := nil
::zonaGrupoConexion:id_grupo := ::lastIdQuery:lastId
::zonaGrupoConexion:id_zona := :dsZonaGrupoConexion:id_zona
::zonaGrupoConexion:update()
end if
:dsZonaGrupoConexion:skip()
end do
end if
:dsZonaGrupoConexion:lOpen := .f.
::zonaGrupoConexion:lOpen := .f.
::lastIdQuery:lOpen := .f.
end with

RETURN Nil
He probado poner el TMenDataSet como local y no me da errores. El caso es que al formar parte del formulario llamado e intentar usarlo desde el llamante, es cuando se produce el error.
El TMemDataSet se crea en el método Inicialize del formulario y funciona correctamente (puedo añadir, modificar y eliminar) hasta que quiero recorrerlo desde el método que llama al formulario.
Un saludo y gracias
José Alfonso Suárez Moreno

Error No exported method GOTOP al navegar por TMemDataset ***SOLUCIONADO***

Publicado: Mar Oct 07, 2014 5:12 pm
por jasm
Hola Ignacio,
Aquí­ dejo un ejemplo autocontenido que reproduce el error.
Saludos
Jose A. Suarez Moreno

Attached files memdatasetTest.zip (4 KB)Â

Error No exported method GOTOP al navegar por TMemDataset ***SOLUCIONADO***

Publicado: Mar Oct 07, 2014 7:41 pm
por ignacio
jasm escribió el mar, 07 octubre 2014 17:12Hola Ignacio,
Aquí­ dejo un ejemplo autocontenido que reproduce el error.
Saludos
Jose A. Suarez Moreno
Realmente no es un error y precisamente se comentó esto mismo hace muy pocos dí­as. El objeto TMemDataset pertenece a TForm2, cuando éste se destruye, todos sus componentes son también destruidos.
Solución:
1) Crear TMemDataset por código
2) Crear TMemDataset en TForm1
3) Utilizar la propiedad TForm2:lHideOnClose
Saludos

Error No exported method GOTOP al navegar por TMemDataset ***SOLUCIONADO***

Publicado: Mar Oct 21, 2014 2:13 pm
por jasm
Gracias.