Kiedy kompiluję aplikację, te błędy pokazują:

   sqlite returned: error code = 1, msg = table mensagens already exists
   Failure 1 (table mensagens already exists) on 0x240328 when preparing 'create table mensagens(mensagemsalva varchar(250),mensagemenviada varchar(250))'.
   sqlite returned: error code = 1, msg = table contatos already exists
   Failure 1 (table contatos already exists) on 0x240328 when preparing 'create table contatos(nome varchar(50),telefone varchar(20))'.

Mój Main.java ma ten kod, który ma na celu stworzenie bazy danych i jej tabel:

  onCreate(..){
   ...
  db = openOrCreateDatabase("banco.db", Context.MODE_WORLD_WRITEABLE, null);
    ...
    VerificaDados();
  }

    private void VerificaDados() {
    // TODO Auto-generated method stub

    try {
        //cria uma TABLE de nome MENSAGENS
        db.execSQL("create table mensagens(mensagemsalva varchar(250),mensagemenviada varchar(250))");
        //ShowMessage("Banco","Criou a tabela de mensagens");
    }
    catch (Exception e) {

        }
    try{
        //cria uma TABLE de nome CONTATOS
        db.execSQL("create table contatos(nome varchar(50),telefone varchar(20))");
        //ShowMessage("Banco","Criou a tabela de contatos");
    }catch (Exception a){

    }

}

Idk co to może być, bo po prostu uruchamiam aplikację i BAM, błędy w LogCat.

0
baTimá 25 wrzesień 2012, 23:12

2 odpowiedzi

Najlepsza odpowiedź

Zapoznaj się z dokumentacją interfejsu API SQLiteOpenHelper.

ta klasa zajmuje się otwieraniem bazy danych, jeśli istnieje, tworzeniem jej, jeśli nie, i aktualizowaniem jej w razie potrzeby.

Powinieneś spróbować odróżnić onCreate() od onUpdate().

1
Ridcully 25 wrzesień 2012, 23:22

Po prostu skomentuj (//) VerificaDados();, ponieważ tabele są już utworzone.

onCreate(..){
    ...
 db = openOrCreateDatabase("banco.db", Context.MODE_WORLD_WRITEABLE, null);
    ...
   //VerificaDados();
   }
0
baTimá 26 wrzesień 2012, 21:53