Spanish [SOLUCIONADO] Problemas al guardar BD Sqlite

desof

Well-Known Member
Licensed User
Longtime User
Hola amigos, tengo Este código Que al Parecer Funciona correctamente Por Que No me da ningun error pero como no veia los cambios reflejados en la BASE DE DATOS me fui al directorio con un gestor de archivos y note que me crea una Base de datos llamada igual pero con el subfijo -journal
en mi Caso aparece una comercios.db-journal.

B4X:
Sub btAgregar_Click

    Si Main.dbSQL.IsInitialized = False Then
        Main.dbSQL.Initialize (File.DirDefaultExternal, "comercios.db", False)
    Terminara si

    Consulta privada como secuencia

    Consulta = "INSERT INTO Rubros VALORES ( '" & txNombre.Text & " ''" & txRubro.Text & " ''" & txDetalle.Text & "')"
    Main.dbSQL.ExecNonQuery (consulta)

    txNombre.Text = ""
    txRubro.Text = ""
    txDetalle.Text = ""
    MsgBox ( "Guardado", "")
    Activity.Finish
End Sub



Por Que SUCEDE ESTO?

PBVwKB60.png
 
Last edited:

Gabriel Conti

Member
Licensed User
Longtime User
Hola desof
Te aclaro que no soy un experto, pero me parece que antes de los valores deberias indicar los nombres de columnas

Consulta = "INSERT INTO Rubros (columna1, columna2, columna3)
values ( '" & txNombre.Text & " ''" & txRubro.Text & " ''" & txDetalle.Text & "')"

en cuanto al subfijo, a mi me aparece si consulto la base directamente sobre el teléfono. Es decir, conectado el teléfono con cable USB a la PC y realizo la visualización de los datos dentro de la tabla.

Espero que ayude
 

desof

Well-Known Member
Licensed User
Longtime User
Hola desof
Te aclaro que no soy un experto, pero me parece que antes de los valores deberias indicar los nombres de columnas

Consulta = "INSERT INTO Rubros (columna1, columna2, columna3)
values ( '" & txNombre.Text & " ''" & txRubro.Text & " ''" & txDetalle.Text & "')"

en cuanto al subfijo, a mi me aparece si consulto la base directamente sobre el teléfono. Es decir, conectado el teléfono con cable USB a la PC y realizo la visualización de los datos dentro de la tabla.

Espero que ayude

Yo estoy recién comenzando con Base de Datos y estuve viendo un ejemplo de EREL que se guardaba de esa a utiizando ExecNonQuery, si pongo como vos me decis me da error
 

Gabriel Conti

Member
Licensed User
Longtime User
te copio un trozo de código que hago lo que vos decis y me funciona perfecto

Dim SQLINS As String
SQLINS= "INSERT INTO mantenimiento (fecha,material,lugar,informe,codfoto)"
SQLINS= SQLINS & " values ('" & Main.fecha & "', '" & mater & "', " & x_id & ", '" & TxtObser.Text & "', '" & Main.codfo & "')"
Main.SQL1a.ExecNonQuery(SQLINS)
 

desof

Well-Known Member
Licensed User
Longtime User
En que directorio tienes guardada la BD?

TAMBIEN me funciona correcto !!! o sea sin errores pero no me lo guarda en la Base y me sigue creando es ...-journal
 

dar2o3

Active Member
Licensed User
Longtime User
El - journal es un archivo que crea y usa el motor de la base de datos sqlite para hacer transacciones y demás cosas internas, si lo borras Sqlite volverá a crearlo, no te preocupes por el, Dejalo como está asegúrate de cerrar la conexión con la bd cuando termines de usarla.
 

Gabriel Conti

Member
Licensed User
Longtime User
Bien!!!
No se como consultas la base de datos.
En un momento que estuve haciendo pruebas, el error que cometía, era muy elemental, cada vez que compilaba la app y la enviaba al teléfono, cargaba nuevamente la DB al teléfono, o sea la volvía a poner sin registros. Es decir, siempre insertaba la DB en blanco. Un error muy tonto, pero que me volvió loco bastante tiempo.
La copia -journal yo muchas veces la tengo y no me ofrece demasiados inconvenientes. Si la borro, todo funciona lo más bien y si la dejo igual.
Muchas veces para poder ver la DB en el telefono, he tenido que reiniciarlo.
Ahora lo que hago es lo siguiente
Conecto el Teléfono via USB a la PC. Copio la base al escritorio de la PC y consulto los registros a ver si me he hace lo esperado. Aunque si tengo el telefono conectado vía USB y estando en modo "Transferencia de Archivos" consulto directamente la DB en el telefono. Esto es lo que te digo que a mi me crea o supongo que me crea la -journal.
 

desof

Well-Known Member
Licensed User
Longtime User
@dar2o3 y @Gabriel Conti Muchas gracias a ambos, ya verifique y efectivamente lo escribe en la BD solo que debo ver como actualizar su contenido para que se refleje de inmediato...
Hay algo como Refresh ? o debo cerrar con Bd.Close y abrirla de nuevo ?
 

Gabriel Conti

Member
Licensed User
Longtime User
Hola DeSof, no comprendo muy bien tu ultima consulta.
El contenido está almacenado en la DB, si vos queres mostrar la información en un listview o en varios editext, en cualquier otro lugar, deberías, abrir nuevamente la conexión, luego hacer un select del registro que estas pretendiendo mostrar.
 

desof

Well-Known Member
Licensed User
Longtime User
Hola DeSof, no comprendo muy bien tu ultima consulta.
El contenido está almacenado en la DB, si vos queres mostrar la información en un listview o en varios editext, en cualquier otro lugar, deberías, abrir nuevamente la conexión, luego hacer un select del registro que estas pretendiendo mostrar.

SI Efectivamente se esta mostrando en un CustomListView y tenia dificultades para actualizar la vista pero ya logré hacerlo hoy!

Gracias por tu apoyo!!!
 
Top