Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Select retorna nulo

Pois é Felipe, baixei agora a database para olhar no Sqlite no computador e vi que realmente não está gravando nenhuma das minhas tabelas.

<õ>
Eu não sei o que estou fazendo de errado ! Já tinha trabalhado com tabelas em outra aplicação dessa maneira e deu tudo certo na outra, mas agora nada tá dando certo.

Mudei agora esse database.close() . Vou testar.

Em 5 de julho de 2012 10:34, Thiago Lopes Rosa <thiago.rosa@gmail.com> escreveu:
Verdade, olhei na documentacao e é isso mesmo!


Thiago


2012/7/5 Felipe Aron <felipearon@gmail.com>
Thiago, só uma observação - no método query(), caso seja passado "null" para o parâmetro "columns", irá retornar todos os campos por padrão. :)

Thalita, uma observação no código do método inserirRonda é a seguinte:
                     .....
            database.setTransactionSuccessful();
            database.close();
        } finally{
            database.endTransaction();
            database.close();
        }        

no finally já está sendo fechado o banco não precisa indicar o close() logo após o setTransactionSuccessful(). Creio que isso está interferindo na gravação, pois você está fechando a conexão antes de fechar a transação. 

Pergunta: Tem certeza que a tabela tem registros?

Em 5 de julho de 2012 10:23, Thiago Lopes Rosa <thiago.rosa@gmail.com> escreveu:
Faltou dizer quais colunas você quer na query!
Ou você faz um rawQuery com SELECT * FROM xxx....


Thiago


On Thu, Jul 5, 2012 at 9:17 AM, Thalita Monteiro <temonteiroj@gmail.com> wrote:
Bom dia pessoas, 

Criei um banco,inseri dados, testei para ver se havia registros, porém quando eu faço um select ele retorna o Cursor nulo. Já pesquisei, já mudei tudo e nada mudou a situação.
Alguém aqui já passou por essa situação?

Segue o meu código para análise:

public class RdaDAO extends GenericDAO {


    public RdaDAO(Context contexto) {
        super(contexto);
    }
    
    public static final String TABELA_RDA = "dadosrda";
    
    public static final String RONDA_CREATE_TABLE = "create table "
            + TABELA_RDA +" (_id INTEGER PRIMARY KEY AUTOINCREMENT, area TEXT,"
            + "telefone TEXT,telefone1 TEXT, telefone2 TEXT,celular TEXT, " 
            + "latitude TEXT, longitude TEXT);";
    
            
    /* INSERIR OS TELEFONES DO RDA */
    public void inserirRonda(List<Rda> ronda){
        
        DbAdapter helper = new DbAdapter(contexto);
        database = helper.open();
        
        database.beginTransaction();
        try {
            for(Rda anuncio : ronda){
                
                ContentValues values = new ContentValues();
                
                values.put("latitude", anuncio.getLatitude());
                values.put("area", anuncio.getBairro());
                values.put("longitude", anuncio.getLongitude());
                
                if(anuncio.getTelefone().contains(" ")){
                    String[] telefone = getTelefone(anuncio.getTelefone());
                    
                    for(int c = 0;c < telefone.length;c++){
                        if(c == 0){
                            values.put("telefone", telefone[c]);
                        }else if(c == 1){
                            values.put("telefone1", telefone[c]);
                        }else if(c == 2){
                            values.put("telefone2", telefone[c]);
                        }
                    }
                    
                }else{
                    values.put("telefone", anuncio.getTelefone());
                }
                
                database.insert(TABELA_RDA, null, values);
            }
            database.setTransactionSuccessful();
            database.close();
        } finally{
            database.endTransaction();
            database.close();
        }       
    }
    
    /* VERIFICA SE O TELEFONE CONTÉM O CARACTERE  / O QUAL INDICA MAIS DE UM TELEFONE */
    private static String[] getTelefone(String telefone){
        String[] telefoneC = telefone.split("/");
        
        return telefoneC;
    }
    
    /* CHECA SE A TABELA TEM VALORES */
    public boolean hasData(){
        boolean data = false;
        
        DbAdapter helper = new DbAdapter(contexto);
        database = helper.open();
        
        Cursor id = database.rawQuery("SELECT COUNT(*) FROM dadosrda"null);
        
        if(id != null){
            id.moveToNext();
          if(id.getInt(0) != 0 ){
            data = false;
          }else{
             data = true;
          }
        }
        
        database.close();
        id.close();
        return data;
    }
    
    /* RECUPERAR TODOS OS DADOS */
    public Cursor getTodosAnuncios(){
        DbAdapter helper = new DbAdapter(contexto);
        database = helper.open();
        
        return database.query(TABELA_RDA, nullnullnullnullnullnull);
    }
    
    public List<Rda> listarTodosAnunciantes(){
        Cursor cursor = getTodosAnuncios();
        
        List<Rda> anunciantes = new ArrayList<Rda>();
        
        if(cursor.moveToFirst()){
            
            int nome      = cursor.getColumnIndex("area");
            int telefone  = cursor.getColumnIndex("telefone");
            int latitude  = cursor.getColumnIndex("latitude");
            int longitude = cursor.getColumnIndex("longitude");
            
            do{
                Rda anuncio = new Rda();
                anunciantes.add(anuncio);
                
                anuncio.setBairro(cursor.getString(nome));
                anuncio.setTelefone(cursor.getString(telefone));
                anuncio.setLatitude(cursor.getString(latitude));
                anuncio.setLongitude(cursor.getString(longitude));
                
            }while(cursor.moveToNext());
            
            
        }
        
        cursor.close();
        database.close();
        return anunciantes;     
    }

}
 


Vale lembrar que estou trabalhando com duas tabelas, pode ser isso também?


--
Atenciosamente,
Thalita Monteiro Jorge.
Graduanda em Sistemas de Informação - FA7


"O importante é garantir os três pontos !"





--
Thiago Rosa



--
Analista-Programador




--
Thiago Rosa



--
Atenciosamente,
Thalita Monteiro Jorge.
Graduanda em Sistemas de Informação - FA7


"O importante é garantir os três pontos !"


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário