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.
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.
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 No exported method GOTOP al navegar por TMemDataset ***SOLUCIONADO***
- ignacio
- Site Admin
- Mensajes: 9253
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Error No exported method GOTOP al navegar por TMemDataset ***SOLUCIONADO***
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
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***
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
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***
Hola Ignacio,
Aquí dejo un ejemplo autocontenido que reproduce el error.
Saludos
Jose A. Suarez Moreno
Attached files memdatasetTest.zip (4 KB)Â
Aquí dejo un ejemplo autocontenido que reproduce el error.
Saludos
Jose A. Suarez Moreno
Attached files memdatasetTest.zip (4 KB)Â
- ignacio
- Site Admin
- Mensajes: 9253
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Error No exported method GOTOP al navegar por TMemDataset ***SOLUCIONADO***
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
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