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.