J'essaye de faire une base de données avec les régions françaises et leurs départements et capitales, ça fonctionne très bien avec JSON, mais pas avec SQLite et je ne comprends pas pourquoi.
Si quelqu'un de bonne volonté pouvait m'éclairer pour me montre mon erreur, je l'en remercierais beaucoup, pourtant ce n'est pas ma première base de données.
En attendant, merci à tous.
Code : Tout sélectionner
;Ligne 1 : Numéro, Département, Préfecture
;Ligne 2 : Nombre de sous-Préfectures
;Ligne 3 : Sous_Préfectures
;Ligne 4 : Région
Enumeration Fichier
#FichierJson
#FichierSqlite
EndEnumeration
Structure Departmnt
Numero.s
Departement.s
Prefecture.s
SousPrefecture.s[6]
Region.s
EndStructure
Global Dim Etat.Departmnt(100), Dim NbreSP.i(100), NewList MaRequete.Departmnt(), Table.s = "Departement", i, j
Global.s NomFichier = "Regions et departements francais", ReqSql.s
;Lecture des données
Procedure Initialiser()
For i = 0 To 100
AddElement(MaRequete())
Read.s Etat(i)\Numero
Read.s Etat(i)\Departement
Read.s Etat(i)\Prefecture
Read.i NbreSP(i)
If NbreSP(i) <> 0
For j = 0 To NbreSP(i)-1
Read.s Etat(i)\SousPrefecture[j]
;MaRequete()\SousPrefecture[j] = Etat(i)\SousPrefecture[j]
Next j
EndIf
Read.s Etat(i)\Region
With MaRequete()
\Numero = Etat(i)\Numero
\Departement = Etat(i)\Departement
\Prefecture = Etat(i)\Prefecture
\Region = Etat(i)\Region
EndWith
Next i
EndProcedure
;Sauvegarde des données
Procedure Sauvegarder_JSON()
;Création d'un nouveau fichier Json vide
CreateJSON(#FichierJson)
;Insérer le tableau Etat() dans la valeur donnée Json
InsertJSONArray(JSONValue(#FichierJson), Etat())
;Sauvegarder les données Json dans une chaîne
SaveJSON(#FichierJson, NomFichier + ".Json")
;Composer les données Json dans une chaîne
;Debug ComposeJSON(#FichierJson, #PB_JSON_PrettyPrint)
EndProcedure
Procedure LireFichier_JSON()
;Lire un fichier JSON (Analyser les données JSON à partir d'un fichier)
LoadJSON(#FichierJson, NomFichier + ".Json")
;Extraire les éléments dans la liste spécifiée
ExtractJSONList(JSONValue(#FichierJson), MaRequete())
ForEach MaRequete()
With MaRequete()
Debug \Departement + " Préfecture: " + \Prefecture + " (" + Str(Val(\Numero)) + ")"
For i = 0 To 5
If \SousPrefecture[i] <> ""
Debug "Sous-préfecture " + Str(i+1) + ": " + \SousPrefecture[i]
Else
Debug "pas de sous-préfecture dans le " + \Numero
Break
EndIf
Next i
Debug "Région: " + \Region
EndWith
Debug ""
Next
EndProcedure
Procedure lireValeurDonnee(Valeur.s)
;Lire un fichier JSON (Analyser les données JSON à partir d'un fichier)
LoadJSON(#FichierJson, NomFichier + ".Json")
;Extraire les éléments dans la liste spécifiée
ExtractJSONList(JSONValue(#FichierJson), MaRequete())
ForEach MaRequete()
With MaRequete()
If Left(\Prefecture,5) = Valeur
MessageRequester("INFO", "Département: " + \Departement + #CRLF$ +
"Préfecture: " + \Prefecture + #CRLF$ +
"Sous-préfecture 1: " + \SousPrefecture[0] + #CRLF$ +
"Sous-préfecture 2: " + \SousPrefecture[1] + #CRLF$ +
"Sous-préfecture 3: " + \SousPrefecture[2] + #CRLF$ +
"Sous-préfecture 4: " + \SousPrefecture[3] + #CRLF$ +
"Sous-préfecture 5: " + \SousPrefecture[4] + #CRLF$ +
"Sous-préfecture 6: " + \SousPrefecture[5] + #CRLF$ +
"Région: " + \Region + #CRLF$ +
"Numéro: " + \Numero)
EndIf
EndWith
Next
EndProcedure
;lireValeurDonnee("Saint")
Procedure CreerBase_SQLite()
UseSQLiteDatabase()
NomFichier + "SQLite"
If NomFichier
If CreateFile(#FichierSqlite, NomFichier)
CloseFile(#FichierSqlite)
If OpenDatabase(#FichierSqlite, NomFichier, "", "", #PB_Database_SQLite)
;Créer une table
ReqSql = "CREATE TABLE IF NOT EXISTS " + Table + "(Numero TEXT, Departement TEXT, Prefecture TEXT, SP1 TEXT, SP2 TEXT, SP3 TEXT, SP4 TEXT, SP5 TEXT, SP6 TEXT, Region TEXT)"
DatabaseUpdate(#FichierSqlite, ReqSql)
;Ajouter des valeurs
For i = 0 To ArraySize(Etat())
ReqSql = "INSERT TO " + Table + "(Numero, Departement, Prefecture, SP1, SP2, SP3, SP4, SP5, SP6, Region) VALUES ('"
ReqSql + Etat(i)\Numero + "', '"
ReqSql + Etat(i)\Departement + "', '"
ReqSql + Etat(i)\Prefecture + "', '"
ReqSql + Etat(i)\SousPrefecture[0] + "', '"
ReqSql + Etat(i)\SousPrefecture[1] + "', '"
ReqSql + Etat(i)\SousPrefecture[2] + "', '"
ReqSql + Etat(i)\SousPrefecture[3] + "', '"
ReqSql + Etat(i)\SousPrefecture[4] + "', '"
ReqSql + Etat(i)\SousPrefecture[5] + "', '"
ReqSql + Etat(i)\Region + "')"
DatabaseUpdate(#FichierSqlite, ReqSql)
Debug ReqSql
Next i
CloseDatabase(#FichierSqlite)
Else
MessageRequester("Erreur", "Impossible d'ouvrir la base")
EndIf
EndIf
EndIf
EndProcedure
Initialiser()
;Sauvegarder_JSON()
;LireFichier_JSON()
CreerBase_SQLite()
;CallDebugger
DataSection
Data.s "01", "Ain", "Bourg-en-Bresse"
Data.i 3
Data.s "Belley", "Gex", "Nantua"
Data.s "Auvergne-Rhône-Alpes"
Data.s "02", "Aisne", "Laon"
Data.i 4
Data.s "Château-Thierry", "Saint-Quentin", "Soissons", "Vervins"
Data.s "Nord-Pas-de-Calais-Picardie"
Data.s "03", "Allier", "Moulins"
Data.i 2
Data.s "Montluçon", "Vichy"
Data.s "Auvergne-Rhône-Alpes"
Data.s "04", "Alpes-de-Haute-Provence", "Digne-les-Bains"
Data.i 3
Data.s "Barcelonnette", "Castellane", "Forcalquier"
Data.s "Provence-Alpes-Côte d'Azur"
Data.s "05", "Hautes-Alpes", "Gap"
Data.i 1
Data.s "Briançon"
Data.s "Provence-Alpes-Côte d'Azur"
Data.s "06", "Alpes-Maritimes", "Nice"
Data.i 1
Data.s "Grasse"
Data.s "Provence-Alpes-Côte d'Azur"
Data.s "07", "Ardèche", "Privas"
Data.i 2
Data.s "Largentière", "Tournon-sur-Rhône"
Data.s "Auvergne-Rhône-Alpes"
Data.s "08", "Ardennes", "Charleville-Mézières"
Data.i 3
Data.s "Rethel", "Sedan", "Vouziers"
Data.s "Alsace-Champagne-Ardenne-Lorraine"
Data.s "09", "Ariège", "Foix"
Data.i 2
Data.s "Pamiers", "Saint-Girons"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "10", "Aube", "Troyes"
Data.i 2
Data.s "Bar-sur-Aube", "Nogent-sur-Seine"
Data.s "Alsace-Champagne-Ardenne-Lorraine"
Data.s "11", "Aude", "Carcassonne"
Data.i 2
Data.s "Limoux", "Narbonne"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "12", "Aveyron", "Rodez"
Data.i 2
Data.s "Millau", "Villefranche-de-Rouergue"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "13", "Bouches-du-Rhône", "Marseille"
Data.i 3
Data.s "Aix-en-Provence", "Arles", "Istres"
Data.s "Provence-Alpes-Côte d'Azur"
Data.s "14", "Calvados", "Caen"
Data.i 3
Data.s "Bayeux", "Lisieux", "Vire"
Data.s "Normandie"
Data.s "15", "Cantal", "Aurillac"
Data.i 2
Data.s "Mauriac", "Saint-Flour"
Data.s "Auvergne-Rhône-Alpes"
Data.s "16", "Charente", "Angoulême"
Data.i 2
Data.s "Cognac", "Confolens"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "17", "Charente-Maritime", "La Rochelle"
Data.i 4
Data.s "Jonzac", "Rochefort", "Saint-Jean-d'Angély", "Saintes"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "18", "Cher", "Bourges"
Data.i 2
Data.s "Saint-Amand-Montrond", "Vierzon"
Data.s "Centre-Val de Loire"
Data.s "19", "Corrèze", "Tulle"
Data.i 2
Data.s "Brive-la-Gaillarde", "Ussel"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "2A", "Corse-du-Sud", "Ajaccio"
Data.i 1
Data.s "Sartène"
Data.s "Corse"
Data.s "2B", "Haute-Corse", "Bastia"
Data.i 2
Data.s "Calvi", "Corte"
Data.s "Corse"
Data.s "21", "Côte-d'Or", "Dijon"
Data.i 2
Data.s "Beaune", "Montbard"
Data.s "Bourgogne-Franche-Comté"
Data.s "22", "Côtes-d'Armor", "Saint-Brieuc"
Data.i 3
Data.s "Dinan", "Guingamp", "Lannion"
Data.s "Bretagne"
Data.s "23", "Creuse", "Guéret"
Data.i 1
Data.s "Aubusson"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "24", "Dordogne", "Périgueux"
Data.i 3
Data.s "Bergerac", "Nontron", "Sarlat-la-Canéda"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "25", "Doubs", "Besançon"
Data.i 2
Data.s "Montbéliard", "Pontarlier"
Data.s "Bourgogne-Franche-Comté"
Data.s "26", "Drôme", "Valence"
Data.i 2
Data.s "Die", "Nyons"
Data.s "Auvergne-Rhône-Alpes"
Data.s"27", "Eure", "Évreux"
Data.i 2
Data.s "Les Andelys", "Bernay"
Data.s "Normandie"
Data.s "28", "Eure-et-Loir", "Chartres"
Data.i 3
Data.s "Châteaudun", "Dreux", "Nogent-le-Rotrou"
Data.s "Centre-Val de Loire"
Data.s "29", "Finistère", "Quimper"
Data.i 3
Data.s "Brest", "Châteaulin", "Morlaix"
Data.s "Bretagne"
Data.s "30", "Gard", "Nîmes"
Data.i 2
Data.s "Alès", "Le Vigan"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "31", "Haute-Garonne", "Toulouse"
Data.i 2
Data.s "Muret", "Saint-Gaudens"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "32", "Gers", "Auch"
Data.i 2
Data.s "Condom", "Mirande"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "33", "Gironde", "Bordeaux"
Data.i 5
Data.s "Arcachon", "Blaye", "Langon","Lesparre-Médoc","Libourne"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "34", "Hérault", "Montpellier"
Data.i 2
Data.s "Béziers", "Lodève"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "35", "Ille-et-Vilaine", "Rennes"
Data.i 3
Data.s "Fougères", "Redon", "Saint-Malo"
Data.s "Bretagne"
Data.s"36", "Indre", "Châteauroux"
Data.i 3
Data.s "Le Blanc", "La Châtre", "Issoudun"
Data.s "Centre-Val de Loire"
Data.s "37", "Indre-et-Loire", "Tours"
Data.i 2
Data.s "Chinon", "Loches"
Data.s "Centre-Val de Loire"
Data.s "38", "Isère", "Grenoble"
Data.i 2
Data.s "La Tour-du-Pin", "Vienne"
Data.s "Auvergne-Rhône-Alpes"
Data.s "39", "Jura", "Lons-le-Saunier"
Data.i 2
Data.s "Dole", "Saint-Claude"
Data.s "Bourgogne-Franche-Comté"
Data.s "40", "Landes", "Mont-de-Marsan"
Data.i 1
Data.s "Dax"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "41", "Loir-et-Cher", "Blois"
Data.i 2
Data.s "Romorantin-Lanthenay", "Vendôme"
Data.s "Centre-Val de Loire"
Data.s "42", "Loire", "Saint-Étienne"
Data.i 2
Data.s "Montbrison", "Roanne"
Data.s "Auvergne-Rhône-Alpes"
Data.s "43", "Haute-Loire", "Le Puy-en-Velay"
Data.i 2
Data.s "Brioude", "Yssingeaux"
Data.s "Auvergne-Rhône-Alpes"
Data.s "44", "Loire-Atlantique", "Nantes"
Data.i 3
Data.s "Ancenis", "Châteaubriant", "Saint-Nazaire"
Data.s "Pays de la Loire"
Data.s "45", "Loiret", "Orléans"
Data.i 2
Data.s "Montargis", "Pithiviers"
Data.s "Centre-Val de Loire"
Data.s "46", "Lot", "Cahors"
Data.i 2
Data.s "Figeac", "Gourdon"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "47", "Lot-et-Garonne", "Agen"
Data.i 3
Data.s "Marmande", "Nérac", "Villeneuve-sur-Lot"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "48", "Lozère", "Mende"
Data.i 1
Data.s "Florac"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "49", "Maine-et-Loire", "Angers"
Data.i 3
Data.s "Cholet", "Saumur", "Segré"
Data.s "Pays de la Loire"
Data.s "50", "Manche", "Saint-Lô"
Data.i 3
Data.s "Avranches", "Cherbourg", "Coutances"
Data.s "Normandie"
Data.s "51", "Marne", "Châlons-en-Champagne"
Data.i 4
Data.s "Épernay", "Reims", "Sainte-Menehould", "Vitry-le-François"
Data.s "Alsace-Champagne-Ardenne-Lorraine"
Data.s "52", "Haute-Marne", "Chaumont"
Data.i 2
Data.s "Langres", "Saint-Dizier"
Data.s "Alsace-Champagne-Ardenne-Lorraine"
Data.s "53", "Mayenne", "Laval"
Data.i 2
Data.s "Château-Gontier", "Mayenne"
Data.s "Pays de la Loire"
Data.s "54", "Meurthe-et-Moselle", "Nancy"
Data.i 3
Data.s "Briey", "Lunéville","Toul"
Data.s "Alsace-Champagne-Ardenne-Lorraine"
Data.s "55", "Meuse", "Bar-le-Duc"
Data.i 2
Data.s "Commercy", "Verdun"
Data.s "Alsace-Champagne-Ardenne-Lorraine"
Data.s "56", "Morbihan", "Vannes"
Data.i 2
Data.s "Lorient", "Pontivy"
Data.s "Bretagne"
Data.s "57", "Moselle", "Metz"
Data.i 4
Data.s "Forbach", "Sarrebourg", "Sarreguemines", "Thionville"
Data.s "Alsace-Champagne-Ardenne-Lorraine"
Data.s "58", "Nièvre", "Nevers"
Data.i 3
Data.s "Château-Chinon (Ville)", "Clamecy", "Cosne-Cours-sur-Loire"
Data.s "Bourgogne-Franche-Comté"
Data.s "59", "Nord", "Lille"
Data.i 5
Data.s "Avesnes-sur-Helpe", "Cambrai", "Douai", "Dunkerque", "Valenciennes"
Data.s "Nord-Pas-de-Calais-Picardie"
Data.s "60", "Oise", "Beauvais"
Data.i 3
Data.s "Clermont", "Compiègne", "Senlis"
Data.s "Nord-Pas-de-Calais-Picardie"
Data.s "61", "Orne", "Alençon"
Data.i 2
Data.s "Argentan", "Mortagne-au-Perche"
Data.s "Normandie"
Data.s "62", "Pas-de-Calais", "Arras"
Data.i 6
Data.s "Béthune", "Boulogne-sur-Mer", "Calais", "Lens", "Montreuil", "Saint-Omer"
Data.s "Nord-Pas-de-Calais-Picardie"
Data.s "63", "Puy-de-Dôme", "Clermont-Ferrand"
Data.i 4
Data.s "Ambert", "Issoire", "Riom", "Thiers"
Data.s "Auvergne-Rhône-Alpes"
Data.s "64", "Pyrénées-Atlantiques", "Pau"
Data.i 2
Data.s "Bayonne", "Oloron-Sainte-Marie"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "65", "Hautes-Pyrénées", "Tarbes"
Data.i 2
Data.s "Argelès-Gazost", "Bagnères-de-Bigorre"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "66", "Pyrénées-Orientales", "Perpignan"
Data.i 2
Data.s "Céret", "Prades"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "67", "Bas-Rhin", "Strasbourg"
Data.i 4
Data.s "Haguenau", "Molsheim", "Saverne", "Sélestat"
Data.s "Alsace-Champagne-Ardenne-Lorraine"
Data.s "68", "Haut-Rhin", "Colmar"
Data.i 3
Data.s "Altkirch", "Mulhouse", "Thann"
Data.s "Alsace-Champagne-Ardenne-Lorraine"
Data.s "69", "Rhône", "Lyon"
Data.i 1
Data.s "Villefranche-sur-Saône"
Data.s "Auvergne-Rhône-Alpes"
Data.s "70", "Haute-Saône", "Vesoul"
Data.i 1
Data.s "Lure"
Data.s "Bourgogne-Franche-Comté"
Data.s "71", "Saône-et-Loire", "Mâcon"
Data.i 4
Data.s "Autun", "Chalon-sur-Saône", "Charolles", "Louhans"
Data.s "Bourgogne-Franche-Comté"
Data.s "72", "Sarthe", "Le Mans"
Data.i 2
Data.s "La Flèche", "Mamers"
Data.s "Pays de la Loire"
Data.s "73", "Savoie", "Chambéry"
Data.i 2
Data.s "Albertville", "Saint-Jean-de-Maurienne"
Data.s "Auvergne-Rhône-Alpes"
Data.s "74", "Haute-Savoie", "Annecy"
Data.i 3
Data.s"Bonneville", "Saint-Julien-en-Genevois", "Thonon-les-Bains"
Data.s "Auvergne-Rhône-Alpes"
Data.s"75", "Paris", "Paris"
Data.i 0
;Data.s ""
Data.s "Île-de-France"
Data.s "76", "Seine-Maritime", "Rouen"
Data.i 2
Data.s "Dieppe", "Le Havre"
Data.s "Normandie"
Data.s "77", "Seine-et-Marne", "Melun"
Data.i 4
Data.s "Fontainebleau", "Meaux", "Provins","Torcy"
Data.s "Île-de-France"
Data.s "78", "Yvelines", "Versailles"
Data.i 3
Data.s "Mantes-la-Jolie", "Rambouillet", "Saint-Germain-en-Laye"
Data.s "Île-de-France"
Data.s "79", "Deux-Sèvres", "Niort"
Data.i 2
Data.s "Bressuire", "Parthenay"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "80", "Somme", "Amiens"
Data.i 3
Data.s "Abbeville", "Montdidier", "Péronne"
Data.s "Nord-Pas-de-Calais-Picardie"
Data.s "81", "Tarn", "Albi"
Data.i 1
Data.s "Castres"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "82", "Tarn-et-Garonne", "Montauban"
Data.i 1
Data.s "Castelsarrasin"
Data.s "Languedoc-Roussillon-Midi-Pyrénées"
Data.s "83", "Var", "Toulon"
Data.i 2
Data.s "Brignoles", "Draguignan"
Data.s "Provence-Alpes-Côte d'Azur"
Data.s "84", "Vaucluse", "Avignon"
Data.i 2
Data.s "Apt", "Carpentras"
Data.s "Provence-Alpes-Côte d'Azur"
Data.s "85", "Vendée", "La Roche-sur-Yon"
Data.i 2
Data.s "Fontenay-le-Comte", "Les Sables-d'Olonne"
Data.s "Pays de la Loire"
Data.s "86", "Vienne", "Poitiers"
Data.i 2
Data.s "Châtellerault", "Montmorillon"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "87", "Haute-Vienne", "Limoges"
Data.i 2
Data.s "Bellac", "Rochechouart"
Data.s "Aquitaine-Limousin-Poitou-Charentes"
Data.s "88", "Vosges", "Épinal"
Data.i 2
Data.s "Neufchâteau", "Saint-Dié-des-Vosges"
Data.s "Alsace-Champagne-Ardenne-Lorraine"
Data.s "89", "Yonne", "Auxerre"
Data.i 2
Data.s "Avallon", "Sens"
Data.s "Bourgogne-Franche-Comté"
Data.s "90", "Territoire de Belfort", "Belfort"
Data.i 0
;Data.s ""
Data.s "Bourgogne-Franche-Comté"
Data.s "91", "Essonne", "Évry"
Data.i 2
Data.s "Étampes", "Palaiseau"
Data.s "Île-de-France"
Data.s "92", "Hauts-de-Seine", "Nanterre"
Data.i 2
Data.s "Antony", "Boulogne-Billancourt"
Data.s "Île-de-France"
Data.s "93", "Seine-Saint-Denis", "Bobigny"
Data.i 2
Data.s "Le Raincy", "Saint-Denis"
Data.s "Île-de-France"
Data.s "94", "Val-de-Marne", "Créteil"
Data.i 2
Data.s "L'Haÿ-les-Roses", "Nogent-sur-Marne"
Data.s "Île-de-France"
Data.s "95", "Val-d'Oise", "Cergy, (chef-lieu à Pontoise)"
Data.i 3
Data.s "Argenteuil", "Pontoise", "Sarcelles"
Data.s "Val-d’Oise"
Data.s "971", "Guadeloupe", "Basse-Terre"
Data.i 1
Data.s "Pointe-à-Pitre"
Data.s "Guadeloupe"
Data.s "972", "Martinique", "Fort-de-France"
Data.i 3
Data.s "La Trinité", "Le Marin", "Saint-Pierre"
Data.s "Martinique"
Data.s "973", "Guyane", "Cayenne"
Data.i 1
Data.s "Saint-Laurent-du-Maroni"
Data.s "Guyane"
Data.s "974", "La Réunion", "Saint-Denis"
Data.i 3
Data.s "Saint-Benoît", "Saint-Paul", "Saint-Pierre"
Data.s "La Réunion"
Data.s "976", "Mayotte", "Mamoudzou"
Data.i 0
;Data.s ""
Data.s "Mayotte "
EndDataSection