Bonjour,
J'ai un souci avec la base de données interne SQLite, jusque là, mon application exécutait bien la mise à jour de la base (onUpgrade) quand j'ajoutai 1 à la version de la base. Mais après avoir modifié le programme, plus rien ne s'exécute à ce niveau.
Voici un extrait de mon activity :
le DataBaseRequest :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 private DataBaseRequest db; ProgressBar bar; TextView txtLoading; Data d = new Data(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.page_loading); bar = (ProgressBar) findViewById(R.id.ProgressBarLoad); txtLoading = (TextView) findViewById(R.id.txtLoading); new Thread(myThread).start(); bar.setProgress(0); //Initialisation de la Base db = new DataBaseRequest(this); [...]
Data regroupe des données statiques, comme le nom des tables colonnes et version par exemple. En testant avec des out.print, je remarque que le message "initialisation" s'affiche dans logCat, mais rien d'autre après.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 private SQLiteDatabase bdd; private DataBaseHelper baseIrdes; private Data d = new Data(); public DataBaseRequest(Context context) { super(); System.out.println("Initialisation"); baseIrdes = new DataBaseHelper(context, d.dbName, null, d.dbVersion); } private void open(){ //on ouvre la BDD en écriture bdd = baseIrdes.getWritableDatabase(); } private void close(){ //on ferme l'accès à la BDD bdd.close(); } [...]
Voici mon DataBaseHelper :
Les autres messages n'apparaissent plus dans logCat, ce qui laisse penser que l'upgrade ne se fait pas du tout... Seul le message "Test" apparaît. D'où pourrait venir le problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 public class DataBaseHelper extends SQLiteOpenHelper { private Data d = new Data(); public DataBaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); System.out.println("Test"); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { d.updateDataBase = true; //Activation prise en charge Foreign Keys db.execSQL("PRAGMA foreign_keys = ON;"); [...] db.execSQL("CREATE TABLE "+d.actualiteTable+" ("+d.colActualiteNum+ " INTEGER PRIMARY KEY , "+ d.colActualiteTitre+ " TEXT, "+d.colActualiteDate+" TEXT, "+d.colActualiteLien+" TEXT, "+d.colActualiteTypeActu+" INTEGER, " + "FOREIGN KEY ("+d.colActualiteTypeActu+") REFERENCES "+d.typeActuTable+" ("+d.colTypeActuNum+"))"); [...] System.out.println("Create table Complete"); InsertRows(db); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { [...] db.execSQL("DROP TABLE IF EXISTS "+d.actualiteTable); [...] onCreate(db); } public void InsertRows (SQLiteDatabase bdd){ System.out.println("Chargement des données"); bdd = this.getWritableDatabase(); ContentValues cv=new ContentValues(); // --------- TypeActu -------- // cv.put(d.colTypeActuNum, 1); cv.put(d.coltypeActuLibelle, "Gen"); bdd.insert(d.typeActuTable, d.colTypeActuNum, cv); [...] bdd.close(); System.out.println("Données inserées"); }
Partager