現在sqliteデータベースにあるテーブルの数が必要です。検索を試みましたが、直接的な方法はありませんでした。
DbHelperでこのメソッドを試しました。
public int countTables() {
int count = 0;
String SQL_GET_ALL_TABLES = "SELECT * FROM sqlite_master WHERE type='table'";
Cursor cursor = getReadableDatabase()
.rawQuery(SQL_GET_ALL_TABLES, null);
cursor.moveToFirst();
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
count++;
getReadableDatabase().close();
}
cursor.close();
return count;
}
しかし、この方法は私に間違ったカウントを与えます。DBにテーブルが3つしかないのですが、このメソッドはカウントを5として返します。このメソッドの何が問題になっている可能性があります。カウントを取得する直接的な方法はありますか?