Android Как добавить базу данных SQLite - PullRequest
0 голосов
/ 20 ноября 2011

У меня есть база данных, созданная из файла в моей папке с оценками. Когда приложение будет обновлено, я хочу, чтобы новый файл в этой папке добавлялся (добавлялся) в текущую базу данных. В настоящее время я пытаюсь использовать этот скрипт ниже, но он не работает. Я просто не добавляю в БД.

        //Open your local db as the input stream
        InputStream myInput = myContext.getAssets().open(STATIC_DB_NAME);

        // Path to the just created empty db
        String outFileName = STATIC_DB_PATH + STATIC_DB_NAME;

        //Open the empty db as the output stream
        OutputStream myOutput = new FileOutputStream(outFileName);

        //transfer bytes from the inputfile to the outputfile
        byte[] buffer = new byte[1024];
        int length;
        while ((length = myInput.read(buffer))>0){
            myOutput.write(buffer, 0, length);
        }

        //Close the streams
        myOutput.flush();
        myOutput.close();
        myInput.close(); 

1 Ответ

1 голос
/ 20 ноября 2011

Вам следует взглянуть на использование SQLLiteOpenHelper и реализацию метода onUpgrade.В этом методе (вызывается только при увеличении номера версии вашей базы данных - что-то, что вы поддерживаете), вы можете открыть файл ресурсов и использовать его для выполнения вставок / обновлений в базу данных sqllite.в этом случае сохраните команды SQL в файле, а затем прочитайте каждую строку и запустите db.execSQL:

BufferedReader reader = new BufferedReader(new FileReader(STATIC_DB_NAME));
String line  = reader.readLine();
while(line != null){
  db.execSQL(line); 
  line = reader.readLine();
}
reader.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...