Oi, pessoal
Estou criando uma app usando SqLite que possui várias tabelas. A primeira tabela está funcionando, quando criei a segunda começou
a apresentar o erro ‘NO SUCH TABLE’ quando executo uma query.
Alguém pode ajudar?
O erro encontra-se em public List getLista(Cliente cliente) {
Cursor cursor = getWritableDatabase().query(TABELA, COLS, null, null, null, null, “cod_cli”); //Erro nesta linha ‘No such table’;
}
Seque abaixo código completo:
package br.com.teste.promotor.dal;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import br.com.teste.promotor.R;
import br.com.teste.promotor.bll.Cliente;
import br.com.teste.promotor.bll.ClienteContato;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class ClienteContatoDAL extends SQLiteOpenHelper
{
private static final String TABELA = “gerk_cli_contat”;
private static final String CATEGORIA = “Promotor”;
private static final String[] COLS = { “id”, “cod_cli”, “seq”, “nome” };
public ClienteContatoDAL(Context context) {
super(context, context.getString(R.string.database), null, Integer.parseInt(context.getString(R.string.versaoBD)));
}
public void onCreate(SQLiteDatabase database) {
try {
String ddl = " CREATE TABLE " + TABELA + " (id INTEGER PRIMARY KEY, "
+ " cod_cli INTEGER NOT NULL, seq INTEGER NOT NULL, nome VARCHAR(30) NOT NULL) ";
database.execSQL(ddl);
} catch (Exception erro) {
Log.e(CATEGORIA,"Erro Create " + TABELA + " " + erro.getMessage());
}
}
public void onUpgrade(SQLiteDatabase database, int oldVersion, int netVersion) {
try {
String sql = " DROP TABLE IF EXISTS " + TABELA;
database.execSQL(sql);
onCreate(database);
} catch (Exception erro) {
Log.e(CATEGORIA,"Erro Drop tabele " + TABELA + " " + erro.getMessage());
}
}
public List<ClienteContato> getLista(Cliente cliente) {
try {
List<ClienteContato> clientesContato = new ArrayList<ClienteContato>();
// erro na linha abaixo: 'No such table'
Cursor cursor = getWritableDatabase().query(TABELA, COLS, null, null, null, null, "cod_cli");
while (cursor.moveToNext()) {
ClienteContato clienteContato = new ClienteContato();
clienteContato = setClienteContato(clienteContato, cursor);
clientesContato.add(clienteContato);
}
cursor.close();
close(); //do banco
return clientesContato;
} catch (Exception erro) {
Log.e(CATEGORIA,"Erro List<ClienteContato> getLista(Cliente cliente) " + erro.getMessage());
return null;
}
}
public String[] getLista(Context context, Cliente cliente) {
try {
List<ClienteContato> clientesContato = new ArrayList();
clientesContato = getLista(cliente);
String[] listaClienteContato = new String[clientesContato.size()];
for(int i = 0; i < clientesContato.size(); i++) {
ClienteContato clienteContato = (ClienteContato) clientesContato.get(i);
listaClienteContato[i] = clienteContato.getNome();
}
return listaClienteContato;
} catch (Exception erro) {
Log.e(CATEGORIA,"Erro String[] getLista(Context context) " + erro.getMessage());
return null;
}
}
private ClienteContato setClienteContato(ClienteContato clienteContato, Cursor cursor) {
try {
clienteContato.setId(cursor.getLong(cursor.getColumnIndex("id")));
clienteContato.setCodCli(cursor.getInt(cursor.getColumnIndex("cod_cli")));
clienteContato.setSeq(cursor.getInt(cursor.getColumnIndex("seq")));
clienteContato.setNome(cursor.getString(cursor.getColumnIndex("nome")));
return clienteContato;
} catch (Exception erro) {
Log.e(CATEGORIA,"Erro Cliente setClienteContato(ClienteContato clienteContato, Cursor cursor) " + erro.getMessage());
return null;
}
}
public void insere(ClienteContato clienteContato) {
try {
ContentValues values = new ContentValues();
values.put("cod_cli", clienteContato.getCodCli());
values.put("seq", clienteContato.getSeq());
values.put("nome", clienteContato.getNome());
getWritableDatabase().insert(TABELA, null, values); //abre o BD para insert
close(); // fecha BD do SQLiteOpenHelper
} catch (Exception erro) {
Log.e(CATEGORIA,"Erro insere(ClienteContato clienteContato) " + erro.getMessage());
}
}
}
Agradeço qualquer ajuda.
FNunes