Generally onUpgrade is used to change the database structure. Adding new data is normally done as part of the regular program runs.
On Sunday, June 3, 2012 8:53:09 AM UTC-4, RawCoder wrote: > > Actually I need to add some new data to all the databases and want to keep > the previous data inserted by the user. Now the problem is in the > onUpgrade() method i get only one db as a input parameter so how can i get > the previous data of user of other db. > > > On Sun, Jun 3, 2012 at 12:04 AM, lbendlin <l...@bendlin.us> wrote: > >> what exactly do you need to upgrade? Can't you just run a few scripts in >> onUpgrade ? >> >> >> On Saturday, June 2, 2012 8:02:22 AM UTC-4, RawCoder wrote: >>> >>> Hi guys, >>> >>> I am working on an android application where i have to use multiple >>> databases. I have used previously created db file. Actually i am copying >>> the db file from asset folder. >>> Now there is option to add data for the user(add favorites). The user >>> data will be added in all three db. >>> >>> Now the problem is i need to upgrade all the db when there is a new >>> version of the app. I have to keep the user data inserted by the user and >>> add the changes of the new db. >>> I have done some googling and find solution to upgrade one db but i can >>> not find a solution to upgrade all the databases and keep the old versions >>> user data. >>> >>> Here is my dbhelper class: >>> >>> //////////////////////////////**//////////////////////////////** >>> //////////////////////////////**//////// >>> package riskycoder.database.helper; >>> >>> import java.io.FileOutputStream; >>> import java.io.IOException; >>> import java.io.InputStream; >>> import java.io.OutputStream; >>> import java.util.Locale; >>> >>> import riskycoder.utils.**AppStaticValues; >>> >>> import android.content.Context; >>> import android.database.Cursor; >>> import android.database.SQLException; >>> import android.database.sqlite.**SQLiteDatabase; >>> import android.database.sqlite.**SQLiteException; >>> import android.database.sqlite.**SQLiteOpenHelper; >>> import android.util.Log; >>> >>> public class DataBaseHelper extends SQLiteOpenHelper { >>> private static String DB_PATH = "/data/data/riskycoder.login/** >>> databases/"; >>> public static String DB_NAME = "datenbank_EN.sqlite"; >>> private SQLiteDatabase myDataBase; >>> private final Context myContext; >>> private static final int DATABASE_VERSION = 1; >>> private static final String DB_NAME_ENG = "datenbank_EN.sqlite"; >>> private static final String DB_NAME_GER = "datenbank_DE.sqlite"; >>> private static final String DB_NAME_SPA = "datenbank_SP.sqlite"; >>> private Cursor updateCursor; >>> >>> public static void setDataBaseName(String lan) >>> { >>> if(lan.equals("ENG")) >>> { >>> DB_NAME=DB_NAME_ENG; >>> } >>> else if(lan.equals("GER")) >>> { >>> DB_NAME=DB_NAME_GER; >>> } >>> else if(lan.equals("SPA")) >>> { >>> DB_NAME=DB_NAME_SPA; >>> } >>> } >>> public DataBaseHelper(Context context) { >>> super(context, DB_NAME, null, DATABASE_VERSION); >>> this.myContext = context; >>> updateCursor=null; >>> } >>> >>> public void createDataBase() throws IOException { >>> boolean dbExist = checkDataBase(); >>> if (dbExist) { >>> this.getWritableDatabase(); >>> } else { >>> this.getWritableDatabase(); >>> try { >>> this.close(); >>> copyDataBase(); >>> } catch (IOException e) { >>> throw new Error("Error copying database"); >>> } >>> } >>> >>> } >>> >>> private boolean checkDataBase() { >>> SQLiteDatabase checkDB = null; >>> try { >>> String myPath = DB_PATH + DB_NAME; >>> checkDB = SQLiteDatabase.openDatabase(**myPath, >>> null,SQLiteDatabase.OPEN_**READWRITE); >>> } catch (SQLiteException e) { >>> } >>> if (checkDB != null) >>> checkDB.close(); >>> return checkDB != null ? true : false; >>> } >>> >>> private void copyDataBase() throws IOException { >>> >>> InputStream myInput = myContext.getAssets().open(DB_**NAME); >>> String outFileName = DB_PATH + DB_NAME; >>> OutputStream myOutput = new FileOutputStream(outFileName); >>> byte[] buffer = new byte[2048]; >>> int length; >>> while ((length = myInput.read(buffer)) > 0) { >>> myOutput.write(buffer, 0, length); >>> } >>> myOutput.flush(); >>> myOutput.close(); >>> myInput.close(); >>> //myDataBase.setVersion(**DATABASE_VERSION); >>> } >>> >>> public void openDataBase() throws SQLException { >>> String myPath = DB_PATH + DB_NAME; >>> myDataBase = SQLiteDatabase.openDatabase(**myPath, >>> null,SQLiteDatabase.OPEN_**READWRITE); >>> Log.d("Test", "Database version: " +myDataBase.getVersion()); >>> if(updateCursor!=null && updateCursor.getCount()!=0) >>> { >>> updateCursor.moveToFirst(); >>> do{ >>> myDataBase.execSQL("UPDATE Content SET is_favourite='1' WHERE >>> content_id >>> ='"+updateCursor.getInt(**updateCursor.getColumnIndex("**content_id"))+"' >>> AND category_id = '"+updateCursor.getInt(** >>> updateCursor.getColumnIndex("**category_id"))+"'"); >>> }while(updateCursor.**moveToNext()); >>> updateCursor.close(); >>> } >>> } >>> >>> @Override >>> public synchronized void close() { >>> if (myDataBase != null) >>> myDataBase.close(); >>> super.close(); >>> } >>> public Cursor Get_Header_Cursor(){ >>> Cursor cursor; >>> cursor = myDataBase.rawQuery("select * from Headers ORDER BY >>> header_orderId",null); >>> return cursor; >>> } >>> public Cursor Get_Group_Cursor(int id){ >>> Cursor cursor = myDataBase.rawQuery("select * from Categories where >>> header_id = "+id+" ORDER BY category_orderId",null); >>> return cursor; >>> } >>> public Cursor Get_Content_Cursor(int id){ >>> Cursor cursor = myDataBase.rawQuery("select * from Content where >>> category_id = "+id,null); >>> return cursor; >>> } >>> >>> public Cursor Get_Favourite_Cursor(){ >>> Cursor cursor = myDataBase.rawQuery("select * from Content where >>> is_favourite = 1",null); >>> return cursor; >>> } >>> >>> @Override >>> public void onCreate(SQLiteDatabase db) { >>> } >>> >>> @Override >>> public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) >>> { >>> if(newVersion>oldVersion) >>> { >>> updateCursor = db.rawQuery("select * from Content where is_favourite = >>> 1",null); >>> Log.d("Test", "is fav"+updateCursor.getCount()); >>> try { >>> copyDataBase(); >>> } catch (IOException e) { >>> // TODO Auto-generated catch block >>> e.printStackTrace(); >>> } >>> } >>> >>> } >>> } >>> >>> //////////////////////////////**//////////////////////////////** >>> //////////////////////////////**///////////// >>> >>> Please help how to upgrade all the databases....... >>> >> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to android-developers@googlegroups.com >> To unsubscribe from this group, send email to >> android-developers+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/android-developers?hl=en > > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en