Tenho um aplicativo para Android que precisa verificar se já existe um registro no banco de dados e, se não houver, processar algumas coisas e, eventualmente, inseri-lo e simplesmente ler os dados do banco de dados se os dados existirem. Estou usando uma subclasse de SQLiteOpenHelper para criar e obter uma instância regravável de SQLiteDatabase, que pensei que automaticamente se encarregaria de criar a tabela se ela ainda não existisse (já que o código para fazer isso está no onCreate (... ) método).
No entanto, quando a tabela ainda NÃO existe e o primeiro método executado no objeto SQLiteDatabase que tenho é uma chamada para consulta (...), meu logcat mostra um erro de "I / Database (26434): sqlite retornado: erro code = 1, msg = no such table: appdata ", e com certeza, a tabela appdata não está sendo criada.
Alguma ideia do porquê?
Estou procurando um método para testar se a tabela existe (porque se não existir, os dados certamente não estarão nela, e eu não preciso ler até que eu escreva nela, o que parece criar a tabela corretamente), ou uma maneira de garantir que ele seja criado, e apenas vazio, a tempo para a primeira chamada de consulta (...)
EDITAR
Isso foi postado após as duas respostas abaixo:
Acho que posso ter encontrado o problema. Por algum motivo, decidi que um SQLiteOpenHelper diferente deveria ser criado para cada tabela, embora ambos acessem o mesmo arquivo de banco de dados. Acho que refatorar esse código para usar apenas um OpenHelper e criar as duas tabelas dentro do onCreate pode funcionar melhor ...