Ho due App, (Ios e Android) che creano lo stesso db con tre campi, il db viene inviato via Ftp sul mio sito; Due App (ios e android) riprendono il file, lo visualizzano e permettono all'utente di di utilizzarlo. Ora succede una cosa strana, il file creato con ios viene ripreso perfettamente dalle due app preposte, l'ho testato fino ad oltre 400 record, poi per sicurezza ho creato il database su Android e con un amara sorpresaa stupore, scopro che funziona fino a 9 record dopo su ios in debug esce questo messaggio Unknown error calling sqlite3_step (11: database disk image is malformed) rs- Ho provato sia con Ftp sia co https, stesso errore ma l'app non esce, mentre con android esce l'app appena carica il file. Per ambedue i sistemi ho utilizzato lo stesso codice
per inizializzare il databese
Per creare il database
per inserire i dati
sul'App visualizzo il tutto con
e sulla lista vedo tutti i record, avevo fatto un inserimento automatico fino a 400 record.
inizialente ho pensato che l'inserimento automatico portasse il problema, quindi mi sono armato
di paziena e li ho inseriti manualmente come previsto ma dopo 9 record arrivano i problemi sulle app riceventi
queste a rigor di logica non dovrbbero avere problemi che con il db creato con B4I non hanno problemi.
L'invio del db sul sito viene fatto con ftp con ambedue i sistemi
Ho provato ha elinare gli spazi con trim ma non cambia nulla, Forse con Utf8 ma no so la sintassi per implementarlo, ho provato con ftp close
ma nulla cambia. Sicuramente sbaglio io ma non riesco a capirl, sono depresso
per inizializzare il databese
B4X:
dbline ="prenline" & currentyear & ".xls"
SQLDataBasePath = File.DirInternal
If File.Exists(SQLDataBasePath, dbline) = False Then
SQL1.Initialize(SQLDataBasePath, dbline, True)
CreateDataBaseoline
Else
SQL1.Initialize(SQLDataBasePath, dbline, True)
End If
Per creare il database
B4X:
Private Sub CreateDataBaseonline
Dim Query As String
Query = "CREATE TABLE preoline(prendata Date, orapren TEXT, arco TEXT, idline text)"
SQL1.ExecNonQuery(Query)
'Fills a few entries
Query = "INSERT INTO preoline VALUES (?, ?, ?, ?)"
End Sub
B4X:
SQL1.Initialize(SQLDataBasePath, dbline , True)
objRowID= SQL1.ExecQuerySingleResult("SELECT max(rowid) FROM preoline")
If Not(objRowID = Null) Then
Nrow = objRowID
Else
Nrow = 0
End If
Nrow=Nrow+1
testo=Nrow
Query = "INSERT INTO preoline VALUES (?, ?, ?, ?)"
SQL1.ExecNonQuery2(Query, Array As String(editpren.Text, labora.text, te, testo))
B4X:
Private Sub Updateline
listaoline.clear
nr=False
SQL1.Initialize(SQLDataBasePath, dbline , True)
Dim Query As String
Dim ResultSet1 As ResultSet
Query = "SELECT * FROM preoline WHERE prendata = ?"
ResultSet1 = SQL1.ExecQuery2(Query, Array As String (editpren.text))
Do While ResultSet1.NextRow
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, listaoline.AsView.Width, 30dip)
p.LoadLayout("itmeorari")
label1.Text= ResultSet1.GetString("prendata")
label2.Text= ResultSet1.GetString("orapren")
label3.Text= ResultSet1.GetString("arco")
label4.Text= ResultSet1.GetString("idline")
listaoline.Add(p, Null)
Loop
If listaoline.Size>0 Then nr=True
ResultSet1.Close
End Sub
inizialente ho pensato che l'inserimento automatico portasse il problema, quindi mi sono armato
di paziena e li ho inseriti manualmente come previsto ma dopo 9 record arrivano i problemi sulle app riceventi
queste a rigor di logica non dovrbbero avere problemi che con il db creato con B4I non hanno problemi.
L'invio del db sul sito viene fatto con ftp con ambedue i sistemi
B4X:
b inviaprenotazioni
fl = Cognome & nome
testo= "prenline" & currentyear & ".xls"
If File.Exists(File.DirInternal,testo) Then
ftp.Initialize("ftp", "ftp.miosito", 21, "xxxx@aruba.it", Mod3.pswftp)
ftp.PassiveMode = True
If label14.Text =" " Then
Dim sf As Object = ftp.UploadFile(File.DirInternal,testo,True,"miosito.it/public/Mycartella1/" & fl & testo)
Else
Dim sf As Object = ftp.UploadFile(File.DirInternal,testo,True,"miosito.it/public/Mycartella2/" & fl & testo)
End If
Wait For (sf) ftp_UploadCompleted (ServerPath As String, Success As Boolean)
If Success Then
ToastMessageShow("Inviato file prenotazioni", False)
Else
ToastMessageShow("Error uploading file prenotazioni", False)
End If
End If
ftp.Close
End Sub
Ho provato ha elinare gli spazi con trim ma non cambia nulla, Forse con Utf8 ma no so la sintassi per implementarlo, ho provato con ftp close
ma nulla cambia. Sicuramente sbaglio io ma non riesco a capirl, sono depresso