Spanish Error, que me lleva de cabeza

23021959Pepe

Member
Licensed User
Hola a todos, tengo una Base de Datos, en la cual uno de los campos contiene coordenadas en formato Decimal (de las que usa Google Maps). Al ejecutar un registro me muestra a través de Google Maps la posición correcta en donde se encuentra el objeto referenciado por las coordenadas, pero algunas veces me da el siguiente error:

Error occurred
An error has occurred in
sub:dbutils_executehtml
(B4A line: 186)
Cur = SQL.ExecQuery(Query)
Java.lang.
RuntimeExecptio: Object
Should first be initialized.
Continue?

Lo he escrito tal y como lo muestra la pantalla del móvil.
¿Pudiera ser que al ejecutar el Google Maps y al necesitar liberar memoria (según he leído por alguna parte) descargue el objeto?. Entiendo que si necesita liberar memoria no se pueda evitar, ¿pero como puedo volver a cargar el objeto cuando sale de Google Maps? y así evitar el error.
La aplicación esta basada en el ejemplo que viene en UserGuide\SourceCode y es el SQLDBUtils con unos pequeños retoques.

Saludos
Pepe
 

cuellar

Member
Licensed User
El error te indica que el objeto debería ser inicializado y si sólo te ocurre a veces, tiene toda la pinta de que el problema venga de liberar memoria.
Lo que puedes hacer es cuando sale de Google Maps, comprobar si el objeto está inicializado o no, mediante Objeto.IsInitialized y si es falso inicializarlo de nuevo. Pero no sé hasta que punto se puede hacer esto o como reaccionará el resto del código.
Prueba esto a ver si van por ahí van los tiros, y ya nos dices...
Un saludo
 

23021959Pepe

Member
Licensed User
Gracias cuellar por tu sugerencia, pero entre los pocos conocimientos que tengo de momento de B4A y lo pesimo que es el depurador para localizar los errores, ya que aveces ignora los puntos de ruptura y muestra el error que comente anteriormente aun habiendo en la entrada a la subrrutina un breakpoint lo ignora olímpicamente.
Ya que tanta similitud tiene con VB, en cuanto a la depuración se le parece poco.
Pero bueno lo seguiré intentando, saludos y gracias de nuevo por tu interés.

Saludos
 

jsanchezc

Member
Licensed User
Antes de ejecutar un QUERY asegurate de que el objeto SQL está inicializado:
Ponlo siempre y evitarás esos problemas.

B4X:
 If SQL1.IsInitialized = False Then
         SQL1.Initialize(File.DirDefaultExternal   , "mibasededatos.sql",  False)
End If 
Cur = SQL1.ExecQuery(Query)
../..
cur.close
 
Top