Eu consegui resolver usando essa implantação...
... no if(dbExist)
fica a informação pra quem cair de para-quedas nesse tópico kkkk
Diogo Henrique
(83)87344178
Rede Sociais:
Meditando Provérbios:
Toastdroid: toastdroid.wordpress.com/
2012/10/29 Diogo Henrique <diogjp10@gmail.com>
Olá pessoal, preciso da ajuda de vocês... tenho um APP que fiz a criação da base de dados dele, usei o expert para criar as tabelas e os dados, e uso essa base de dados fixa. Dai surgiu a necessidade de atualizar a base de dados e criar uma nova tabela, eu não tenho acesso ao Play porque eu só fiz desenvolver o APP para o cara. Se eu mandar o novo APK para ele com essa nova base de dados serve para esse meu caso ?Minha classe do DB e essa que está abaixo... ela pega um arquivo .db que está na pasta assets e inclui no projeto, eu uso ela apenas no SplashScreen e para fazer um insert no banco, depois só os DAO usam ela.public class DataBaseHelper extends SQLiteOpenHelper {//The Android's default system path of your application database.private static String DB_PATH = "/data/data/br.com.android.noweight/databases/";private static String DB_NAME = "reeduc_base.db";private SQLiteDatabase myDataBase;private static String myPa = DB_PATH + DB_NAME;private final Context myContext;public DataBaseHelper(Context context) {super(context, DB_NAME, null, 1);this.myContext = context;}public void createDataBase() throws IOException{Log.i("teste","entrou no metodo createDatabase");boolean dbExist = checkDataBase();if(dbExist){//do nothing - database already exist}else{//By calling this method and empty database will be created into the default system path//of your application so we are gonna be able to overwrite that database with our database.this.getReadableDatabase();try {copyDataBase();} catch (IOException e) {throw new Error("Error copying database");}}}private boolean checkDataBase(){SQLiteDatabase checkDB = null;try{//checkDB.execSQL("PRAGMA foreign_keys=ON;");String myPath = DB_PATH + DB_NAME;checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);}catch(SQLiteException e){//database does't exist yet.}if(checkDB != null){checkDB.close();}return checkDB != null ? true : false;}private void copyDataBase() throws IOException{//Open your local db as the input streamInputStream myInput = myContext.getAssets().open(DB_NAME);// Path to the just created empty dbString outFileName = DB_PATH + DB_NAME;//Open the empty db as the output streamOutputStream myOutput = new FileOutputStream(outFileName);//transfer bytes from the inputfile to the outputfilebyte[] buffer = new byte[1024];int length;while ((length = myInput.read(buffer))>0){myOutput.write(buffer, 0, length);}//Close the streamsmyOutput.flush();myOutput.close();myInput.close();}public void openDataBase() throws SQLException{//Open the databaseString myPath = DB_PATH + DB_NAME;myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);}@Overridepublic synchronized void close() {if(myDataBase != null)myDataBase.close();super.close();}@Overridepublic void onCreate(SQLiteDatabase db) {}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}public boolean insert(String nome_tabela,ContentValues ctv){myDataBase = SQLiteDatabase.openDatabase(myPa, null, SQLiteDatabase.OPEN_READWRITE);if((myDataBase.insert(nome_tabela, null, ctv) > 0)){myDataBase.close();return true;}else{return false;}}
Diogo Henrique(83)87344178Rede Sociais:Meditando Provérbios:Toastdroid: toastdroid.wordpress.com/
0 comentários:
Postar um comentário