GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Erro no SQLite com mais de uma tabela!

Tags: #<Tag:0x00007f28e9f1f180>

Olá pessoal, tô sem saber oq fazer com um erro que está dando no meu projeto.

Meu DB está assim:

public static final String NOME_DATABASE = "concessionaria.db"; //db = database

public static final String NOME_TABELA_CONC = "TABELA_CONCESSIONARIA";
public static final String NOME_TABELA_ADM = "TABELA_ADMINISTRADORES";
public static final String NOME_TABELA_FUNC = "TABELA_FUNCIONARIOS";

public static final String COL_1 = "ID";
public static final String COL_2 = "NOME";
public static final String COL_3 = "RG";
public static final String COL_4 = "CPF";
public static final String COL_5 = "SEXO";
public static final String COL_6 = "NASCIMENTO";
public static final String COL_7 = "ENDERECO";
public static final String COL_8 = "TEL_RESID";
public static final String COL_9 = "TEL_CEL";
public static final String COL_10 = "CARGO";
public static final String COL_11 = "MATRICULA";
public static final String COL_12 = "HORARIO_TRAB";
public static final String COL_13 = "SALARIO";
public static final String COL_14 = "EMAIL";
public static final String COL_15 = "SENHA";
public static final String COL_16 = "COMPROVANTE_RENDA";
public static final String COL_17 = "CODIGO";
public static final String COL_18 = "MARCA";
public static final String COL_19 = "MODELO";
public static final String COL_20 = "ANO_LANCAMENTO";
public static final String COL_21 = "KM_PERCORRIDO";
public static final String COL_22 = "PLACA";
public static final String COL_23 = "COR";
public static final String COL_24 = "TEST_DRIVE";
public static final String COL_25 = "PRECO";
public static final String COL_26 = "CNPJ";
public static final String COL_27 = "TELEFONE";

// CONTRUTOR
public DataBaseHelper(Context context)
{
    super(context, NOME_DATABASE, null, 1);
}

@Override
public void onCreate(SQLiteDatabase db)
{
    db.execSQL("CREATE TABLE "+NOME_TABELA_CONC+ "(ID INTEGER PRIMARY KEY AUTOINCREMENT, NOME TEXT, CNPJ TEXT, ENDERECO TEXT, TELEFONE TEXT, EMAIL TEXT, SENHA TEXT)");
    db.execSQL("CREATE TABLE "+NOME_TABELA_ADM+ "(ID INTEGER PRIMARY KEY AUTOINCREMENT, NOME TEXT, RG TEXT, CPF TEXT, SEXO TEXT, NASCIMENTO TEXT, ENDERECO TEXT, TEL_RESID TEXT, TEL_CEL TEXT, CARGO TEXT, MATRICULA TEXT, HORARIO_TRAB TEXT, SALARIO TEXT, EMAIL TEXT, SENHA TEXT)");
    db.execSQL("CREATE TABLE "+NOME_TABELA_FUNC+ "(ID INTEGER PRIMARY KEY AUTOINCREMENT, NOME TEXT, RG TEXT, CPF TEXT, SEXO TEXT, NASCIMENTO TEXT, ENDERECO TEXT, TEL_RESID TEXT, TEL_CEL TEXT, CARGO TEXT, MATRICULA TEXT, HORARIO_TRAB TEXT, SALARIO TEXT, EMAIL TEXT, SENHA TEXT)");
}

O projeto roda normalmente, mas só com a TABELA_ADMINISTRADORES, que foi a primeira que eu criei.

Quanto às outras (fiz o teste com a TABELA_FUNCIONARIOS), não roda e dá o erro:

Caused by: android.database.sqlite.SQLiteException: no such table: TABELA_FUNCIONARIOS (code 1 SQLITE_ERROR): , while compiling: select * from TABELA_FUNCIONARIOS

Todos os métodos das outras Tabelas estão implementados da mesma forma que os da TABELA_ADMINISTRADORES (a primeira que eu criei).

Não entendo o porque do erro, já que as outras Tabelas foram criadas no método onCreate junto à TABELA_ADMINISTRADORES e não dão nenhum erro aparente, e os demais métodos também foram criados igualmente à primeira Tabela criada (TABELA_ADMINISTRADORES).

Se alguém puder dar uma luz eu agradeço muitíssimo!

Esse problema estava acontecendo pq a versão do banco não foi atualizada. Das duas, uma:

Ou vc atualiza a VERSÃO do Banco;
Ou vc exclui o banco e, ao inicializar o app, ele o cria e todas as tabelas são inicializadas.

//