9/11/23 - Código para Respaldo Diario en Android 10.

- En Android 10, el código para ManageExternalStorage no funciona, asi que si se detecta que el directorio (skmt) no se creo, se manda la BD al directorio seguro en la sdcard (sdcard/Android/data/kelloggs ...)
This commit is contained in:
2023-11-09 20:56:15 -06:00
parent db6cf8d7ab
commit ea1bb8d292
10 changed files with 292 additions and 66 deletions

View File

@@ -13,7 +13,7 @@ Sub Class_Globals
Dim rp As RuntimePermissions
Dim safePath As String
Dim fechaHoy As String
Dim fechaAnt As String
' Dim fechaAnt As String
Dim skmtAttached As Boolean = False
Dim rkmtAttached As Boolean = False
'####### MES Vars ######
@@ -46,18 +46,23 @@ Sub RD_Init
Dim Dirp As String = File.DirRootExternal
Dim Dir As String
' Dim Dir2 As String
' File.MakeDir(File.DirRootExternal,"/kmts")
' File.MakeDir(rp.GetSafeDirDefaultExternal("/"), "kmts")
Try
File.MakeDir(Dirp,"/kmts")
Dir = "/kmts"
' Log("creado en kmts " & Dirp & Dir)
Log("Creado kmts " & Dirp & Dir)
Log(File.IsDirectory(Dirp, Dir))
Catch
Dir = ""
' Log("creado en raiz")
Log("Creado en raiz")
End Try
safePath = Dirp & Dir
'Si no existe el directorio "kmts" en el raiz de la tarjeta de memoria, nos cambiamos al directorio seguro (sdcard/Android/data/kelloggs...)
If Not(File.IsDirectory(Dirp, Dir)) Then safePath = rp.GetSafeDirDefaultExternal("kmts")
If Starter.Logger Then Log($"Safepath:${safePath}"$)
Private name() As String = Regex.split(" ", Application.LabelName)
rkmt.Initialize(safePath,$"${name(0)}.rkmt.km"$, True)
Private name() As String = Regex.split(" ", Application.LabelName) 'Obtenemos el nombre de la app para ponerselo a la BD.
rkmt.Initialize(safePath, $"${name(0)}.rkmt.km"$, True)
skmt.Initialize(File.DirInternal,"kmt.db", False)
If chkIfTableExists(skmt, "PEDIDO") Then rkmt.ExecNonQuery($"create table if not exists PEDIDO (${getTableColumnList(skmt, "PEDIDO")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "CAT_DETALLES_PAQ") Then rkmt.ExecNonQuery($"create table if not exists CAT_DETALLES_PAQ (${getTableColumnList(skmt, "CAT_DETALLES_PAQ")}, FECHA TEXT)"$)
@@ -129,7 +134,7 @@ Sub RD_respalda_pedido
rkmt.EndTransaction
End If
x.Close
Log("P: " & ((DateTime.Now - inicio)/1000) & " segs")
LogColor("P: " & ((DateTime.Now - inicio)/1000) & " segs", Colors.RGB(166,37,0))
End Sub
'RD - Copia la tabla CAT_GUNAPRODS a rkmt.db en la tarjeta del celular.
@@ -147,7 +152,7 @@ Sub RD_respalda_cat_gunaprod
rkmt.EndTransaction
End If
x.Close
Log("GP: " & ((DateTime.Now - inicio)/1000) & " segs")
LogColor("GP: " & ((DateTime.Now - inicio)/1000) & " segs", Colors.RGB(166,37,0))
End Sub
'RD - Copia la tabla CAT_GUNAPROD de rkmt.db al celular.
@@ -188,7 +193,7 @@ Sub RD_respalda_cat_gunaprod2
rkmt.EndTransaction
End If
x.Close
Log("GP2: " & ((DateTime.Now - inicio)/1000) & " segs")
LogColor("GP2: " & ((DateTime.Now - inicio)/1000) & " segs", Colors.RGB(166,37,0))
End Sub
'RD - Copia la tabla CAT_GUNAPROD2 de rkmt.db al celular.
@@ -224,7 +229,7 @@ Sub RD_respalda_cat_detalle_paq
rkmt.ExecNonQuery($"insert into CAT_DETALLES_PAQ (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_DETALLES_PAQ"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
Log("DP: " & ((DateTime.Now - inicio)/1000) & " segs")
LogColor("DP: " & ((DateTime.Now - inicio)/1000) & " segs", Colors.RGB(166,37,0))
End If
x.Close
End Sub
@@ -264,7 +269,7 @@ Sub RD_respalda_kmt_info
rkmt.EndTransaction
End If
x.Close
Log("KMT: " & ((DateTime.Now - inicio)/1000) & " segs")
LogColor("KMT: " & ((DateTime.Now - inicio)/1000) & " segs", Colors.RGB(166,37,0))
End Sub
'RD - Copia la tabla kmt_info de rkmt.db al celular.
@@ -529,7 +534,7 @@ Sub hayPedido(db As SQL) As Boolean 'ignore
Return hay
End Sub
Sub string2date(fecha As String)
Sub string2date(fecha As String) 'ignore
Log(fecha)
DateTime.DateFormat = "MM/dd/yyyy"
Dim t As Long = DateTime.DateTimeParse(fecha, "00:00:00")