Italian Problema Database

ecubing

Member
Licensed User
Longtime User
ciao a tutti...ho aggiunto alla mia applicazione un database creato con sqlite manager, e l'ho aggiunto al progetto dalla scheda Files (in basso a destra)...intanto vi chiedo se è corretto così aggiungere un db all'apk, e poi appena tento di inizializzarlo, mi dà "SQLiteCantOpenDatabaseException: unable to open database file".

cosa sbaglio? illuminatemi!!
 

giannimaione

Well-Known Member
Licensed User
Longtime User
ciao a tutti...ho aggiunto alla mia applicazione un database creato con sqlite manager, e l'ho aggiunto al progetto dalla scheda Files (in basso a destra)...intanto vi chiedo se è corretto così aggiungere un db all'apk, e poi appena tento di inizializzarlo, mi dà "SQLiteCantOpenDatabaseException: unable to open database file".

cosa sbaglio? illuminatemi!!
il codice ragazzi, il codice.... allegate il codice, altrimenti come possiamo aiutarvi ? :BangHead:
 

ecubing

Member
Licensed User
Longtime User
più che altro volevo capire se il database si aggiunge come ho fatto...
da codice lo inizializzo così:

If Database.IsInitialized = False Then
Database.Initialize(File.DirRootExternal,"myapp/Data/mydatabase.db", False)
End If
 

giannimaione

Well-Known Member
Licensed User
Longtime User
??? Database.Initialize(File.DirRootExternal,"myapp/Data/mydatabase.db", False) ???

Database.Initialize(File.DirRootExternal,"mydatabase.db", True):' se non esiste viene creato

se non hai problemi, inizializza il DB in
Sub Process_Globals
'bla bla
'bla bla
database.initialize bla bla bla bla
'bla
'bla
End Sub
 
Last edited:

ecubing

Member
Licensed User
Longtime User
You need to copy the database from File.DirAssets to File.DirRootExternal/myapp/Data/.
Files added in the Tab in the IDE are in File.DirAssets and must be copied to another directory.
User's Guide page 20.

Best regards.
yes, I had already done!
 

ecubing

Member
Licensed User
Longtime User
risolto...era un errore legato alla creazione del dump del database....grazie lo stesso a tutti!!
 

ecubing

Member
Licensed User
Longtime User
???
se non hai problemi, inizializza il DB in
Sub Process_Globals
'bla bla
'bla bla
database.initialize bla bla bla bla
'bla
'bla
End Sub

dichiarando e inizializzando il database in Process_Globals in un'activity, appena carico un'altra activity non riesco ad utilizzare in questa la stessa variabile database...concettualmente cosa sbaglio? cioè tutto ciò che si trova in Process_Globals non dovrebbe essere visibile a tutte le altre activity?

scusate se le mie domande possono sembrarvi banali, ma ho iniziato da poco e vorrei capire come funziona! :)
 

giannimaione

Well-Known Member
Licensed User
Longtime User
con le APP con piu activity prova in questo modo

nella activity principale MAIN , inizializza mySQL
esempio:
dim mySQL as SQL
mySQL.Initialize (bla,bla,,,,,,)

nelle altre activity richiama cosi
main.mySQL.ExecNonQuery (......
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Ciao,
è correttissimo quello che ti ha suggerito Giannimaione, ma su questi tipi di oggetti li utilizzerei a livello privato per ogni activity.
Se non puoi farne a meno, creati un modulo dove metti tutte le variabili globali.
Poi per richiamare, moduloglobale.variabile.
Ciao
 

GaNdAlF89

Active Member
Licensed User
Longtime User
Ciao,
è correttissimo quello che ti ha suggerito Giannimaione, ma su questi tipi di oggetti li utilizzerei a livello privato per ogni activity.
Se non puoi farne a meno, creati un modulo dove metti tutte le variabili globali.
Poi per richiamare, moduloglobale.variabile.
Ciao

(curiosità)
perché è meglio utilizzare questo tipo di oggetti a livello privato, piuttosto che pubblico (ad es. mettere tutto in un modulo globale come hai detto), anche se lo stesso oggetto viene utilizzato in altre activity??
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Lo stato dell'oggetto può variare per molti motivi, perchè utilizzato da più oggetti diversi, è può avere valori diversi in un determinato momento.
Se vuoi fare una cosa fatta bene, creati una classe che la connessione, sql , il cursor e le varie sub per estrarre i dati, fare delle insert ecc..
Poi da ogni activity che la utilizzi, crei una nuova istanza dell'oggetto, così hai vari vantaggi, ad esempio la riusabilità del codice, l'uso dello stesso oggetto centralizzato nel progetto, e la creazione di più istanze dello stesso oggetto.

Ovviamente queste sono solo mie valutazioni.:)
 
Top