French Basic4Android et Sqlite Format 3

sultan87

Active Member
Licensed User
Longtime User
Bonjour
*j'ai créé une BD avec SQLITEMANAGER
je l'ai copié de W8 vers Android (DirDefaultExternal)
je n'arrive pas à la lire, ni ajouter des enreg
pourquoi?
Cordialement
Pierre Chevalier
 

imbault

Well-Known Member
Licensed User
Longtime User
Bonjour,
as tu vérifié que la DB était bien sur DirdefaultExternal et accessible ?
genre

B4X:
Sub Activity_Create(FirstTime As Boolean)
 
Dim ProgDB As String 
ProgDB = "mydb.db"
    If  Not(File.Exists(File.DirDefaultExternal, ProgDB)) Then
        Log("db create")
        CreateDB
        Log("continue")
    End If
dbSQL.Initialize(File.DirDefaultExternal, ProgDB, False)
....
 

sultan87

Active Member
Licensed User
Longtime User
Bonjour,
as tu vérifié que la DB était bien sur DirdefaultExternal et accessible ?
genre

B4X:
Sub Activity_Create(FirstTime As Boolean)

Dim ProgDB As String
ProgDB = "mydb.db"
    If  Not(File.Exists(File.DirDefaultExternal, ProgDB)) Then
        Log("db create")
        CreateDB
        Log("continue")
    End If
dbSQL.Initialize(File.DirDefaultExternal, ProgDB, False)
....

Bonjour,
j'ai vérifié avec le bout de programme ci-dessus, en changeant le nom de la bd
ma db existe bien.
j'ai ajouté cette ligne
Log("Number of rows = " & dbSQL.ExecQuerySingleResult("SELECT count(*) FROM donnes"))
il me donne 0, alors que j'ai 3 enreg dans la table
la db a été créé avec sqlitemanager, qui ne met pas l'extension .db
j'ai essayé sans ou avec le .db, mème problème
cordialement
 

sultan87

Active Member
Licensed User
Longtime User
Bonjour,
j'ai vérifié avec le bout de programme ci-dessus, en changeant le nom de la bd
ma db existe bien.
j'ai ajouté cette ligne
Log("Number of rows = " & dbSQL.ExecQuerySingleResult("SELECT count(*) FROM donnes"))
il me donne 0, alors que j'ai 3 enreg dans la table
la db a été créé avec sqlitemanager, qui ne met pas l'extension .db
j'ai essayé sans ou avec le .db, mème problème
cordialement

Re bonjour
j'ai supprimer ma db
je l'ai recréé avec sqlitemanager
cela fonctionne
je ne comprends pas
mon problème est résolu
Cordialement
Pierre Chevalier
 

imbault

Well-Known Member
Licensed User
Longtime User
Bizarre, surement un pb de transcodage windows <->android, dans l'absolu, il vaut mieux créer la structure de la db sous android, et ensuite ajouter des records si besoin sous windows.

avec dbutils par exemple:

B4X:
Sub CreateDB
    Dim ProgDB As String                               
    ProgDB = "sitesgss.db"
    Log("create db")
    dbSQL.Initialize(File.DirDefaultExternal, ProgDB, True)
    'Delete old tables and create new ones.
    dbutils.DropTable(dbSQL, "sites")
    Dim m As Map
    m.Initialize


    m.Put("id", dbutils.DB_INTEGER)
    m.Put("name", dbutils.DB_TEXT)
    m.Put("address1", dbutils.DB_TEXT)
    m.Put("address2", dbutils.DB_TEXT)
    m.Put("city", dbutils.DB_TEXT)
    m.Put("zip", dbutils.DB_TEXT)
    m.Put("country", dbutils.DB_TEXT)
    m.Put("email", dbutils.DB_TEXT)
    m.Put("phone", dbutils.DB_TEXT)
    m.Put("fax", dbutils.DB_TEXT)
    m.Put("lat", dbutils.DB_TEXT)
    m.Put("long", dbutils.DB_TEXT)
    m.Put("type", dbutils.DB_TEXT)
  
    dbutils.CreateTable(dbSQL, "sites", m, "id")


End Sub

Patrick
 
Top