さまざまなテーブルを保持するために使用できるデータベースを作成したいだけです。しかし、最初は、テーブルなしでデータベースを作成し、データベース ファイルが存在するかどうかを確認してから、create table コマンドを発行します。そのため、テーブルの作成は後で行うことができますが、データベースの作成は Android アプリケーションの起動時に最初に行うことができます。
4 に答える
何を達成しようとしているのかまだ完全にはわかりませんが、作成済み/未作成のデータベース状態をフラグとして使用しているようです。もしそうなら、おそらくこれを処理する方が共有設定変数であり、実際に必要なときにデータベースを作成する方がよいでしょう。
ええ、私はあなたがそれを行うことができると確信しています。SQLiteDatabaseHelper を使用している場合は、onCreate でテーブルを作成せずに、後でそれを処理する creatTable() 関数を作成するだけで済みます。Context.openOrCreateDatabase() を使用している場合、空のデータベースが作成されます。ただし、データベースが既に存在するかどうかを確認する方法がわかりません。
データベースにテーブルがないと、実際にはデータベースが作成されない可能性があることに注意してください。最初のテーブルを作成する直前にデータベースを作成しても問題はありません。
これは可能なはずです。このリンクをチェックしてください。getWritableDatabase() を使用してみてください。ドキュメントによると、データベースが存在する場合は作成するか、既存のデータベースを開く必要があります。
これに問題がある場合は、このようなテーブルを使用してデータベースを作成し、その後すぐにテーブルを削除してください。すなわち:
public static void clearDatabase(SQLiteDatabase db) {
db.delete(DATABASE_TABLE, null, null);
db.delete(sqlite_sequence, "name = '"
+ DATABASE_TABLE + "'", null);
}
上記のコードは、テーブル内のすべてのエントリを削除します。完全に削除するには、これを試すことができます
db.execSQL("DROP TABLE IF EXISTS '" + DATABASE_TABLE + "'");
うまくいけば、これが役に立ちます!乾杯