Pour un projet perso je me suis fais un petit model de données assez simple d'utilisation.
- Etape créer la base de donnée Ex: myDb.DB_MODEL::DB = DB_MODEL::newDb("Data","myDb.db")
- Après cela vous pouvez envoyé une requête update, la base sera ouverte et fermée automatiquement
- Ou envoyé une requête query,on utilise après cela Ex: myQuery\nextRecord() et puis Ex: myQuery\getString(0)
Comprenez bien que l'intérêt d'un tel module est de pouvoir par après l'utiliser dans toutes application qui doit utilisé Sqlite et on peut même si le besoins en est créer plusieurs bases avec le même module.
Zip content :
- DB_Model.pbi
- Main.pbi
- README.md
- Classes
- DB.pbi
- Operation.pbi
- Query.pbi
- Update.pbi
Code : Tout sélectionner
XIncludeFile "DB_MODEL.pbi"
myDb.DB_MODEL::DB = DB_MODEL::newDb("Data","myDb.db")
Define req.s
If Not myDb\fileExists()
myDb\create()
; Create countries table
req = "CREATE TABLE IF NOT EXISTS countries("+
"id INTEGER PRIMARY KEY AUTOINCREMENT,"+
"name TEXT)"
If Not myDb\update(req)
End
EndIf
; Create cities table
Define req.s = "CREATE TABLE IF NOT EXISTS cities("+
"id INTEGER PRIMARY KEY AUTOINCREMENT,"+
"name TEXT,"+
"postalCode,"+
"id_country INTEGER)"
If Not myDb\update(req)
End
EndIf
; Create contacts table
Define req.s = "CREATE TABLE IF NOT EXISTS contacts("+
"id INTEGER PRIMARY KEY AUTOINCREMENT,"+
"name TEXT,"+
"surName TEXT,"+
"address TEXT,"+
"id_city INTEGER)"
If Not myDb\update(req)
End
EndIf
; we add some countries for testing
req = "INSERT INTO countries ("+
"name) VALUES ('Belgique')"
If Not myDb\update(req)
End
EndIf
req = "INSERT INTO countries ("+
"name) VALUES ('France')"
If Not myDb\update(req)
End
EndIf
req = "INSERT INTO countries ("+
"name) VALUES ('Espagne')"
If Not myDb\update(req)
End
EndIf
; we add some cities for testing
req = "INSERT INTO cities ("+
"name,"+
"postalCode,"+
"id_country"+
") VALUES ("+
"'Waremme',"+
"'4300',"+
"1"+
")"
If Not myDb\update(req)
End
EndIf
req = "INSERT INTO cities ("+
"name,"+
"postalCode,"+
"id_country"+
") VALUES ("+
"'Trooz',"+
"'4870',"+
"1"+
")"
If Not myDb\update(req)
End
EndIf
req = "INSERT INTO cities ("+
"name,"+
"postalCode,"+
"id_country"+
") VALUES ("+
"'Liège',"+
"'4000',"+
"1"+
")"
If Not myDb\update(req)
End
EndIf
req = "INSERT INTO cities ("+
"name,"+
"postalCode,"+
"id_country"+
") VALUES ("+
"'Paris',"+
"'75000',"+
"2"+
")"
If Not myDb\update(req)
End
EndIf
req = "INSERT INTO cities ("+
"name,"+
"postalCode,"+
"id_country"+
") VALUES ("+
"'Reims',"+
"'69000',"+
"2"+
")"
If Not myDb\update(req)
End
EndIf
; we add some contacts for testing
req = "INSERT INTO contacts ("+
"name,"+
"surName,"+
"address,"+
"id_city"+
") VALUES ("+
"'Dupond',"+
"'Gérard',"+
"'Rue du Globe, 21',"+
"1"+
")"
If Not myDb\update(req)
End
EndIf
req = "INSERT INTO contacts ("+
"name,"+
"surName,"+
"address,"+
"id_city"+
") VALUES ("+
"'Gaumont',"+
"'ALain',"+
"'Rue du Palais, 11',"+
"2"+
")"
If Not myDb\update(req)
End
EndIf
req = "INSERT INTO contacts ("+
"name,"+
"surName,"+
"address,"+
"id_city"+
") VALUES ("+
"'Dudule',"+
"'Marcel',"+
"'Rue de la tarte, 2',"+
"3"+
")"
If Not myDb\update(req)
End
EndIf
req = "INSERT INTO contacts ("+
"name,"+
"surName,"+
"address,"+
"id_city"+
") VALUES ("+
"'Pureabasic',"+
"'Langage',"+
"'Rue du développement 4,',"+
"4"+
")"
If Not myDb\update(req)
End
EndIf
EndIf
; try to select
Define req.s = "SELECT a.name,b.name,c.name"+
" FROM contacts AS a,countries AS b,cities AS c"+
" WHERE c.id = a.id_city AND "+
" b.id = c.id_country"
myQuery.DB_MODEL::Query = myDb\newQuery(req)
; display to result
If myQuery
While myQuery\nextRecord()
Debug myQuery\getString(0)
Debug myQuery\getString(1)
Debug myQuery\getString(2)
Wend
EndIf
; free object and close database
myQuery\free()
Ha oui c'est full object, je suis trop vieux que pour changé