0

さまざまなテーブルを保持するために使用できるデータベースを作成したいだけです。しかし、最初は、テーブルなしでデータベースを作成し、データベース ファイルが存在するかどうかを確認してから、create table コマンドを発行します。そのため、テーブルの作成は後で行うことができますが、データベースの作成は Android アプリケーションの起動時に最初に行うことができます。

4

4 に答える 4

0

何を達成しようとしているのかまだ完全にはわかりませんが、作成済み/未作成のデータベース状態をフラグとして使用しているようです。もしそうなら、おそらくこれを処理する方が共有設定変数であり、実際に必要なときにデータベースを作成する方がよいでしょう。

于 2012-10-04T17:55:49.697 に答える
0

ええ、私はあなたがそれを行うことができると確信しています。SQLiteDatabaseHelper を使用している場合は、onCreate でテーブルを作成せずに、後でそれを処理する creatTable() 関数を作成するだけで済みます。Context.openOrCreateDatabase() を使用している場合、空のデータベースが作成されます。ただし、データベースが既に存在するかどうかを確認する方法がわかりません。

データベースにテーブルがないと、実際にはデータベースが作成されない可能性があることに注意してください。最初のテーブルを作成する直前にデータベースを作成しても問題はありません。

于 2012-10-04T17:44:10.413 に答える
0

これは可能なはずです。このリンクをチェックしてください。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 + "'");

うまくいけば、これが役に立ちます!乾杯

于 2012-10-04T17:53:36.613 に答える
0

SQLite は、何らかの変更を加えるまでデータベースを作成しません。

テーブルを含まない無害な変更は、これを実行することです:

PRAGMA user_version = 0
于 2012-10-04T19:11:41.817 に答える