PDA

View Full Version : حذف کردن بانک sql نسخه قبلی برنامه با آپدیت کردن و کپی شدن فایل جدید بانک sql از پیش ساخته شده



alireza142
شنبه 27 تیر 1394, 18:02 عصر
سلام و عرض ادب

یک برنامه آموزشی را مبتنی با بانک sql ساختم که در دو سطح مقدماتی و پیشرفته است. اما فقط می خام قسمت مقدماتیش رو فعلا بذارم. مشکلم اینه که در آینده که بخام نسخه جدید رو بذارم، باید چیکار کنم که بانک sql نسخه قبلی پاک بشه و مال این نسخه جدید بشینه جاش؟
این بخشی از کد های جاوای کلاس DatabaseHandler است. لطفا راهنمایی کنید دوستان در متد onUpgrade چه کدهایی باید قرار بدم؟ اگه لازمه که کارهای دیگه ای هم انجام بدم لطفا بهم بگین...
ممنون.
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, 1);
mycontext = context;
}

@Override
public void onCreate(SQLiteDatabase arg0) {

}

@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

}

public void useable() {
boolean checkdb = checkdb();
if (checkdb) {

} else {
this.getReadableDatabase();
try {
copydatabase();
} catch (IOException e) {

}
}
}

public void open() throws SQLException {
mydb = SQLiteDatabase.openDatabase(path + DATABASE_NAME, null,
SQLiteDatabase.OPEN_READWRITE);
}

@Override
public void close() {
mydb.close();
}

public boolean checkdb() {
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openDatabase(path + DATABASE_NAME, null,
SQLiteDatabase.OPEN_READWRITE);
} catch (SQLException e) {

}

return db != null ? true : false;
}

public void copydatabase() throws IOException {

OutputStream myOutput = new FileOutputStream(path + DATABASE_NAME);
byte[] buffer = new byte[1024];
int lenght;
InputStream myInput = mycontext.getAssets().open(DATABASE_NAME);
while ((lenght = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, lenght);
}
myInput.close();
myOutput.flush();
myOutput.close();
}