Note that there are some explanatory texts on larger screens.

plurals
  1. POonUpgrade and onCreate doesn't running when i called it
    primarykey
    data
    text
    <p>I have a problem with SQLite, it doesn't work when i call DataBaseHelper(who store the onCreate and onUpgrade method), even if the version of DataBase change, and i have no errors.</p> <p>For resuming my application, my main activity call the Singleton, who execute DataBaseHelper.</p> <p>My main Activity :</p> <pre><code>public class irdesApplication extends Activity { public static final String LOG_TAG="Droidnova"; private Context context = this; CheckUpdate chUp; ProgressBar bar; TextView txtLoading; Data d = new Data(); Singleton s; 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 s.getInstance(context); // ---------- Constitution des logs ------------ // int logParam =0; Log.v(LOG_TAG, "logParam value" + logParam); [...] } </code></pre> <p>}</p> <p>My Singleton :</p> <pre><code>package com.irdes.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; public class Singleton { private static Singleton instance; private DataBaseHelper baseIrdes; private SQLiteDatabase db; private Data d = new Data(); private Singleton(Context context){ System.out.println("Construction du Singleton"); d.loadPercent = 10; d.loadTxt = "Initialisation"; baseIrdes = new DataBaseHelper(context, d.dbName, null, d.dbVersion); } public static synchronized Singleton getInstance(Context context){ if (instance == null) instance = new Singleton(context); return instance; } public void setValue(SQLiteDatabase value){ db = value; } public SQLiteDatabase getValue(){ return db; } protected void open(){ //on ouvre la BDD en écriture db = baseIrdes.getWritableDatabase(); } protected void close(){ //on ferme l'accès à la BDD db.close(); } </code></pre> <p>}</p> <p>My DataBasHelper Activity :</p> <pre><code>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"); </code></pre> <p>}</p> <p>And Data class for more comprehension :</p> <pre><code>public static final String dbName="irdesDB"; public static final int dbVersion=46; public static final String actualiteTable="Actualite"; public static final String colActualiteNum="numActu"; public static final String colActualiteTitre="titre"; public static final String colActualiteDate="date"; public static final String colActualiteLien="lien"; public static final String colActualiteTypeActu="numTypeActu"; [...] </code></pre> <p>I have aslo posted in a french forum here, if it could help: <a href="http://www.developpez.net/forums/d1110144/java/general-java/java-mobiles/android/sqlite-onupgrade-ne-s-execute-plus/#post6141983" rel="nofollow">http://www.developpez.net/forums/d1110144/java/general-java/java-mobiles/android/sqlite-onupgrade-ne-s-execute-plus/#post6141983</a></p> <p>What's the problem ? I don't understand why onCreate and onUpgrade doesn't executed.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload