SQLite
 sql >> база данни >  >> RDS >> SQLite

Как да възстановите базата данни на Sqlite след архивиране на Android

Това е основният код на работещо възстановяване на DB (от if (dbfile .. в try ).

            private static final int BUFFERSZ = 32768;
            private byte[] buffer = new byte[BUFFERSZ];
            ........
            dbfile = new File(currentdbfilename);
            .......
            if (dbfile.delete()) {
                origdeleted = true;
            }

            FileInputStream bkp = new FileInputStream(backupfilename);
            OutputStream restore = new FileOutputStream(currentdbfilename);
            copylength = 0;
            while ((copylength = bkp.read(buffer)) > 0) {
                restore.write(buffer, 0, copylength);
            }
            restore.flush();
            restore.close();
            restoredone = true;
            bkp.close();

Основните разлики са, че изтривам DB файла и използвам записи, а не трансфери. По-късно и при успешно възстановяване също използвам следното, за да рестартирам приложението (може да е излишно, но работи за мен), тъй като можете да получите непредвидими резултати (мисля, че части от оригиналната база данни могат да бъдат достъпни от памет/кеширани данни):-

    Intent i = getBaseContext().getPackageManager()
                                            .getLaunchIntentForPackage( getBaseContext().getPackageName() );


    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    finish();
    startActivity(i);
    System.exit(0);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Могат ли записи в базата данни, добавени от елементи, да бъдат изтрити с бутон?

  2. SQLite СЪЩЕСТВУВА

  3. Как да инсталирате SQLite и SQLite браузър в Ubuntu

  4. Как да комбинирам данни от две отделни таблици в един курсор?

  5. Приложението се срива при инсталация с грешка sqlite3_exec - Неуспешно задаване на синхронен режим =1 (Нормално)