新しい行でSQLiteデータベースを更新しようとしています。問題は、データベースを開くと、その中のすべての行を削除するようです。ここに私のコードは次のとおりです。私の二つの出力文でAndroid:既存のデータベースを開くときにすべての行を削除する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キロバイトに戻ります。私は間違って何をしていますか?
編集:私はおそらく
private File myAppDir = null;
private File databaseFile = null;
...
// Automatically creates /mnt/sdcard/.../myApp folder if it doesn't already exist
if (myAppDir == null)
myAppDir = new File(getExternalFilesDir(null).getAbsolutePath());
if (databaseFile == null)
databaseFile = new File(myAppDir, "/myApp.db");
...私は7
あなたのfile.existsブロックは実行されていて、elseブロックではありませんか? – Tim
両方のブロックで出力されたログメッセージに基づいて、はい。 – Ogre