Я пытаюсь открыть базу данных SQLite, чтобы обновить ее новыми строками. Проблема в том, что открытие базы данных, кажется, удаляет все строки в ней. Вот мой код:
String sdPath = Environment.getExternalStorageDirectory() + "/myApp";
String databasePath = sdPath + "/myApp.db";
File file = new File( databasePath );
if( file.exists() )
{
Log.w( getClass().getSimpleName() , "myApp Database size: " + file.length() );
database = SQLiteDatabase.openOrCreateDatabase( file, null );
Log.w( getClass().getSimpleName() , "myApp Database size: " + file.length() );
Log.w( getClass().getSimpleName() , "myApp Database opened" );
}
else
{
File directory = new File( sdPath );
directory.mkdir();
Log.w( getClass().getSimpleName() , "Creating myApp Database" );
database = SQLiteDatabase.openOrCreateDatabase( file, null );
Log.w( getClass().getSimpleName() , "myApp Database opened" );
database.execSQL( DATABASE_CREATE_TABLE_OBJECT );
database.execSQL( DATABASE_CREATE_TABLE_ZONE );
database.execSQL( DATABASE_CREATE_TABLE_OBJECT_ZONE );
database.execSQL( DATABASE_CREATE_TABLE_POINT );
database.execSQL( DATABASE_CREATE_INDEX_POINT );
database.execSQL( DATABASE_CREATE_INDEX_ZONE );
}
В моих двух выходных операторах первый сообщает мне размер файла перед его открытием, а затем после открытия размер файла всегда возвращается примерно к 13 КБ. Что я делаю не так?
РЕДАКТИРОВАТЬ: я должен упомянуть, что я пишу это, ни Android API уровня 7.