Tengo un problema al intentar añadir un registro a una tabla.
Este es el código:
For i = 0 To Cursor2.RowCount - 1
Cursor2.Position = i
If Cursor2.GetString("sDia") = EdtFecha.Text Then
Existe = True
Msgbox("Ya existe un servicio en la base de datos para ese día (" & Cursor2.GetString("sDia") & ")","Atención")
Exit
End If
Next If Not(Existe) Then
SQL2.BeginTransaction Try
SQL2.ExecNonQuery("INSERT INTO Horas VALUES('" & EdtFecha.Text & "','" & EditText1.Text.ToUpperCase & "','" & LblHoras.Text & "','" & LblNocturnas.Text & "','" & LblHoras.Text & "')")
SQL2.TransactionSuccessful Catch
Log(LastException.Message) 'no changes will be made End Try
SQL2.EndTransaction
VerDiasTrabajados.Refrescar = True
Activity.Finish End If
En el emulador de Android funciona. Añade el registro pero cuando lo ejecuto en el móvil no consigo que añada ningún registro.
Hola vampirbcn
en el Activity_create del modulo principal:
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
Activity.LoadLayout("main")
If File.Exists(File.DirInternal,"bd.sql") = False Then
File.Copy(File.DirAssets,"bd.sql",File.DirInternal,"bd.sql")
End If
End Sub
Y en el activity donde intento añadir un registro:
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
Activity.LoadLayout("VerDiasTrabajados")
SQuery = "SELECT * FROM Horas"
If SQL1.IsInitialized = False Then
SQL1.Initialize(File.DirInternal, "bd.sql", False)
End If
Refrescar = False
DBload
End Sub
Gracias por tus respuestas.
Investigaré a ver que puede ser. Es raro. En el emulador utilizo la versión de Android 2.3.3 y todo ok. Mi móvil versión Android 4.1.2.
No pones los nombres de los campos en los que hay que insertar los valores. entonces, dependiendo del orden de éstos (los campos) en la db, te va a funcionar o no.
Lo mejor (yo diría incluso lo obligatorio) es poner siempre los nombres de los campos (en el mismo orden que los valores después).
Por ejemplo:
Ya funciona! Las dos formas de código funcionan correctamente ahora. Parece que en el móvil la base de datos / tabla era distinta, es decir, que en algún momento hice un cambio en la tabla que no la actualicé en el móvil debido a la parte del código en la que dice que si existe que no se copie. Entiendo también que en el emulador de Android si que estaba la tabla actualizada.
Está muy bien escribir los nombres de los campos y luego los valores porque así seguro que tienes menos errores.