Ver mensagens sem resposta | Ver tópicos ativos Hoje é 22 Nov 2019, 06:58



Responder Tópico  [ 41 Mensagens ] 
 [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android 
Autor Mensagem
Hello World!
Hello World!

Data de registro: 16 Mar 2008, 12:11
Mensagens: 25
Mensagem [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Neste tutorial será abordado, como gravar e recuperar dados persistentes utilizando o banco de dados SQLite em Android.

A classe Activity contém métodos para manipular o banco SQLite, o método createDatabase é um que permite criar um banco de dados em android.

Outro método importante, quando está se manuseando dados é o método openDatabase, este método permite abrir um banco de dados para que possa trabalha-lo com ele.

A classe SQLiteDatabase, contém métodos que permitem manusear instruções de banco de dados. O método execSQL permite passar como parâmetro uma string SQL, pode inserir dados, criar tabela, alterar dados, e deletar dados.

O método query da Classe SQLiteDatabase, possibilita realizar uma consulta no banco de dados, retornando os registros contidos no banco de dados, a filtragem é determinada nos parâmetro que são passados.

A classe Cursor contém vários métodos que possibilita a manipulação dos dados retornados pelo método query da classe SQLiteDatabase.

Métodos da classe Cursor

next – é um boolean, retorna true se existir um novo registro.
getColumnIndex – método retorna um inteiro que indica qual é o index da coluna passada como parâmetro.
getString – retorna uma o campo pesquisado em formato de String, pede como parâmetro o index da coluna.
getInt – retorna como Inteiro, o campo pesquisado, solicita como parâmetro o index da coluna.
getDouble – retorna um valor double, que tenha sido retornado na consulta, solicita como parâmetro o index da coluna.
getFloat – retorna um valor float, que tenha sido retornado na consulta, solicita como parâmetro o index da coluna.
getLong – retorna um valor long, que tenha sido retornado na consulta, solicita como parâmetro o index da coluna.

Logo abaixo vou adicionar um código onde é possível manipular dados em SQLite utilizando android.
A Classe Trabalho permite Criar o banco de dados, Salvar,Alterar,Excluir registros no banco de dados.

Trabalho.java


package com.Trabalho;

import com.banco.Pessoa;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import java.io.FileNotFoundException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class Trabalho extends Activity {
    /** Called when the activity is first created. */

    public EditText telefone;
    public EditText data;
    public EditText nome;
    public Button button;
    public Intent intentPesquisar;
    public Intent telaPricipal;
    public Button butDeletar;
    public Button butAlterar;
    public Button butNovo;
    private Pessoa pessoa;
    private SQLiteDatabase banco = null;
   
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        intentPesquisar = new Intent(this, Pesquisas.class);
        telaPricipal = new Intent(this,trabalho.class);
     
        setContentView(R.layout.tela);
        instance = this;
 
        telefone =   (EditText) findViewById(R.id.textTelefone);
        data =       (EditText) findViewById(R.id.textData);
        nome =       (EditText) findViewById(R.id.textNome);
        button =     (Button) findViewById(R.id.button);
        butDeletar = (Button) findViewById(R.id.buttonDeletar);
        butAlterar = (Button) findViewById(R.id.buttonAlterar);
        butNovo = (Button) findViewById(R.id.butNovo);
       
        button.setOnClickListener(new Button.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                salvarCadastro(nome.getText().toString(), telefone.getText()
                        .toString(), data.getText().toString());
            }
        });

        final Button criarBanco = (Button) findViewById(R.id.buttonCriarBd);
        criarBanco.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if (criarBanco()) {
                    showAlert("Parabens", 1, "banco de dados criado com sucesso", "ok", true);
                } else {
                    showAlert("ERRO", 1, "Não foi possivel criar o banco de dados ", "ok", true);
                }
            }
        });

        final Button pesquisar = (Button) findViewById(R.id.buttonPesquisar);
        pesquisar.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startSubActivity(intentPesquisar, 0);
            }
        });

        butDeletar.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(pessoa != null){
                    if(deletar(pessoa.getId())){
                        showAlert("Registro", 1, "Excluído com sucesso", "ok", true);
                        limparTela();
                    }else{
                        showAlert("ERRO", 1, "Problema ao excluir registro", "OK", true);
                    }
                }
            }});

        butAlterar.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(pessoa != null)
                if(alterar(pessoa.getId())){
                    showAlert("Alterado", 1, "Alterado com sucesso", "ok", true);
                }else{
                    showAlert("ERRO", 1, "ERRO", "ok", true);
                }
            }    
        });

        butNovo.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                limparTela();
            }});
    }
   
/**
 * método responsavél por criar o banco de dados
 * @return
 */


    public boolean criarBanco() {
        boolean aux = true;
        try {
            String nomeBanco = nomeBancoDeDados;
            createDatabase(nomeBanco, 1, MODE_WORLD_READABLE, null); // cria o banco de dados caso ele não exista
            banco = openDatabase(nomeBanco, null); // abrir a conexão com o banco de dados
            banco.execSQL("CREATE TABLE IF NOT EXISTS lista (id INTEGER PRIMARY KEY, nome TEXT,telefone TEXT,data TEXT);"); //SQL que cria o banco de dados
            Log.d("Sucesso", "banco de dados crado na moral");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            aux = false;
            Log.d("Exception banco de dados", e.getMessage());            
        }
        return aux;
    }

/**
 * Método que salva os campos no banco de dados
 * @param nome
 * @param telefone
 * @param data
 */


    public void salvarCadastro(String nome, String telefone, String data) {
        try {
            banco = openDatabase(nomeBancoDeDados, null);//Abrir conexão com o banco de dados
            banco.execSQL("INSERT INTO lista(nome,telefone,data) VALUES ('"+ nome + "','" + telefone + "','" + data + "')");//Execulta o insert no banco de dados
            String[] colunas = { "nome", "telefone", "data" };
            Cursor c = banco.query(true, "lista", colunas, null, null, null,null, null);
            while (c.next()) {
                Log.i(String.valueOf(c.getColumnIndex("nome")), c.getString(c.getColumnIndex("nome")));
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            Log.d("Exception ", e.getMessage());
        }
    }
   
    public void setCampos(Pessoa pessoa){
        getInstance().limparTela();
        getInstance().nome.setText(pessoa.getNome());
        getInstance().telefone.setText(pessoa.getTelefone());
        getInstance().data.setText(pessoa.getData());
        this.pessoa = pessoa;
    }

    private void limparTela(){
        nome.setText("");
        telefone.setText("");
        data.setText("");
    }

    public static String nomeBancoDeDados = "marlus";
   
    private boolean deletar(int cod){
        boolean aux = true;
        try {
            banco = openDatabase(nomeBancoDeDados, null);
            String sql = "DELETE FROM lista WHERE id = '"+cod+"'";
            banco.execSQL(sql);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            aux=false;
            Log.d("Exception excluir",e.getMessage().toString());
        }
        return aux;        
    }
   
    private boolean alterar(int cod){
        boolean aux = true;
        try{
            banco = openDatabase(nomeBancoDeDados, null);
            String sql = "UPDATE lista SET nome = '"+nome.getText().toString()+"', telefone = '"+telefone.getText().toString()+"', data = '"+data.getText().toString()+"' WHERE id = '"+cod+"'";
            banco.execSQL(sql);
        }catch(Exception e){
            aux=false;
            Log.d("Excecao ",e.getMessage().toString());
        }
        return aux;
    }    
   
    private static Trabalho  instance = null;

    public static Trabalho getInstance(){
        return instance;
    }
}

 

Pessoa.java


package com.banco;

public class Pessoa {
    private String nome;
    private String telefone;
    private String data;
    private int id;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getTelefone() {
        return telefone;
    }
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }
    public String getData() {
        return data;
    }
    public void setData(String data) {
        this.data = data;
    }    
    private static Pessoa instance = null;
    public static Pessoa getInstance(){
        if(instance == null){
            instance = new Pessoa();
        }
        return instance;
    }
}
 


Logo abaixo está o XML da classeTrabalho.java

tela.xml


<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>

<TextView
android:id="@+id/widget27"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nome"
android:layout_x="20px"
android:layout_y="22px"
>

</TextView>
<EditText
android:id="@+id/textNome"
android:layout_width="198px"
android:layout_height="wrap_content"

android:textSize="18sp"
android:layout_x="90px"
android:layout_y="12px"
>

</EditText>
<TextView
android:id="@+id/widget29"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Telefone"
android:layout_x="20px"
android:layout_y="82px"
>

</TextView>
<EditText
android:id="@+id/textTelefone"
android:layout_width="197px"
android:layout_height="wrap_content"
android:phoneNumber="true"
android:textSize="18sp"
android:layout_x="90px"
android:layout_y="72px"
>

</EditText>
<TextView
android:id="@+id/widget31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Data"
android:layout_x="20px"
android:layout_y="142px"
>

</TextView>
<EditText
android:id="@+id/textData"
android:layout_width="197px"
android:layout_height="wrap_content"

android:textSize="18sp"
android:layout_x="90px"
android:layout_y="132px"
>

</EditText>
<Button
android:id="@+id/button"
android:layout_width="82px"
android:layout_height="wrap_content"
android:text="Salvar"
android:layout_x="25px"
android:layout_y="202px"
>

</Button>
<Button
android:id="@+id/buttonCriarBd"
android:layout_width="78px"
android:layout_height="wrap_content"
android:text="CriarBD"
android:layout_x="113px"
android:layout_y="202px"
>

</Button>
<Button
android:id="@+id/buttonPesquisar"
android:layout_width="90px"
android:layout_height="wrap_content"
android:text="pesquisar"
android:layout_x="195px"
android:layout_y="202px"
>

</Button>
<Button
android:id="@+id/buttonDeletar"
android:layout_width="90px"
android:layout_height="wrap_content"
android:text="deletar"
android:layout_x="195px"
android:layout_y="260px"
>

</Button>
<Button
android:id="@+id/butNovo"
android:layout_width="82px"
android:layout_height="wrap_content"
android:text="Novo"
android:layout_x="25px"
android:layout_y="260px"
>

</Button>
<Button
android:id="@+id/buttonAlterar"
android:layout_width="78px"
android:layout_height="wrap_content"
android:text="Alterar"
android:layout_x="113px"
android:layout_y="260px"
>

</Button>
</AbsoluteLayout>
 


A classe Pesquisas é a classe responsavel pela consulta no banco de dados. Segue logo abaixo o código que demostra com trabalhar com consulta no SQLite.

Pesquisas.java


package com.trabalho;

import com.banco.Pessoa;

import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import android.app.Activity;
import android.app.ListActivity;
import android.app.TabActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.AdapterView.OnItemSelectedListener;

public class Pesquisas extends Activity{

    ListView lista ;  
    EditText texto ;    
   
 @Override
 public void onCreate(Bundle icicle) {
     super.onCreate(icicle);
     setContentView(R.layout.pesquisar);
     
     lista = (ListView) findViewById(R.id.list);    
     texto = (EditText) findViewById(R.id.pesquisar);    
     
     texto.setOnKeyListener(new OnKeyListener(){

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            if(!texto.getText().toString().equals("")){//varifica se o campo digitado é diferente de vazio
                pesquisar(texto.getText().toString());//chama o método pesquisar passando como parâmetro o campo texto
            }else{
                limparLista();//limpa a lista se o campo text for igual a vazio.
            }
            return false;
        }});    
     
     lista.setOnItemSelectedListener(new OnItemSelectedListener(){

        @Override
        public void onItemSelected(AdapterView parent, View v, int position,
                long id) {
            // TODO Auto-generated method stub
            trabalho.getInstance().setCampos(vector.get(Integer.parseInt(String.valueOf(id)))); //método que vai preencher os campos na tela de trabalho
        }

        @Override
        public void onNothingSelected(AdapterView parent) {
            // TODO Auto-generated method stub            
        }});    
 }
 
 /**
  * Método que vai limpar a lista
  */


 private void limparLista(){    
     vector.clear();
     lista.setAdapter( new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList()));
 }
 
 /**
  * método que vai fazer a pesquisa no banco de dados SQLite
  * e retornar o resulado e adicioná-lo na lista
  * @param t
  */


 private void  pesquisar(String t){
     ArrayAdapter<String> fileList = null;
     SQLiteDatabase bd = null;
     vector.clear();
     Pessoa pessoa = null;
     try {
        bd = openDatabase(trabalho.nomeBancoDeDados,null); //abre a conexão com o banco de dados
        Cursor c = bd.query(true,"lista",new String[]{"id","nome","telefone","data"},null, null, null, null,null); // pesquisa o campos passandos no vetor de string no banco de dados e adiciona a o resultado da consulta no objeto Cursor  
        ArrayList<String> result = new ArrayList<String>();        
        while(c.next()){
            //Prenchendo um objeto do tipo pessoa com os dados recuperados do banco de dados
            pessoa = new Pessoa();
            pessoa.setNome(c.getString(c.getColumnIndex("nome")));
            pessoa.setTelefone(c.getString(c.getColumnIndex("telefone")));
            pessoa.setData(c.getString(c.getColumnIndex("data")));
            pessoa.setId(c.getInt(c.getColumnIndex("id")));
            vector.add(pessoa); // adiciona o objeto pessoa no vetor
            pessoa = null;
           
        //adiciona a visão da lista
         result.add(c.getString(c.getColumnIndex("nome")) +
                 " - "+c.getString(c.getColumnIndex("telefone"))+" - "+
                 c.getString(c.getColumnIndex("data")));      
        }        
        fileList = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, result); //cria o modelo
        lista.setAdapter(fileList); //intala a lista
    } catch (FileNotFoundException e) {        
        Log.d("SQL ERRO ",e.getMessage().toString());
    }finally{
        bd.close(); //fecha a conexão com o banco de dados
    }    
 }  
 private Vector<Pessoa> vector = new Vector<Pessoa>(); //vetor utilizado para armazenar objetos do tipo Pessoa
}
 


pesquisar.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/widget27"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
>

<TextView
android:id="@+id/widget29"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pesquisar"
>

</TextView>
<EditText
android:id="@+id/pesquisar"
android:layout_width="317px"
android:layout_height="wrap_content"
android:textSize="18sp"
>

</EditText>
<ListView
android:id="@+id/list"
android:layout_width="317px"
android:layout_height="290px"
>

</ListView>
</LinearLayout>
 


AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.trabalho">

    <application android:icon="@drawable/icon">
        <activity android:name=".trabalho" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>        
        <activity android:name=".Pesquisas" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
 



Espero ter ajudado com este tutorial. :D

Duvidas sugestões comentários criticas ?

:mrgreen:


Você não tem permissões suficientes para ver os arquivos anexados nesta mensagem.


Editado pela última vez por Marlus Dias Silva em 14 Jul 2008, 19:21, no total de 3 vez



13 Jul 2008, 23:30
Perfil
What is DDMS?
What is DDMS?
Avatar de usuário

Data de registro: 14 Jun 2008, 06:03
Mensagens: 37
Mensagem Re: Trabalhando com o Banco de Dados SQLite no Android.
belo tutorial em, vai me ajudar a ver o que eu tava errando, com o outro....

será que não dá pra unir os dois em um post só?

_________________
Rogerio Ferreira - B2BR


Editado pela última vez por regeriob2br em 15 Jul 2008, 20:08, num total de 1 vezes



14 Jul 2008, 02:10
Perfil
Hello World!
Hello World!

Data de registro: 16 Mar 2008, 12:11
Mensagens: 25
Mensagem Re: Trabalhando com o Banco de Dados SQLite no Android.
regeriob2br escreveu:
belo totorial em, vai me ajudar a ver o que eu tava errando, com o outro....

será que não dá pra unir os dois em um post só?


sim rogério poderia sim sem nenhum problema

t+
abraços


14 Jul 2008, 09:48
Perfil
Android application
Android application
Avatar de usuário

Data de registro: 01 Fev 2008, 12:28
Mensagens: 84
Mensagem Re: Trabalhando com o Banco de Dados SQLite no Android.
Muito bom Marlus, ainda não botei pra rodar (falta de tempo pra mexer no android), mas olhando por cima, acho que você se esqueceu de postar a classe pessoa não?!

abraço


14 Jul 2008, 14:39
Perfil
Hello World!
Hello World!

Data de registro: 16 Mar 2008, 12:11
Mensagens: 25
Mensagem Re: Trabalhando com o Banco de Dados SQLite no Android.
jijo escreveu:
Muito bom Marlus, ainda não botei pra rodar (falta de tempo pra mexer no android), mas olhando por cima, acho que você se esqueceu de postar a classe pessoa não?!

abraço


Verdade esqueci sim

daki a pouco vou upar ela negocio que não to com o pc que desenvolvi a aplicação até as 3 da tarde já vai estar a classe pessoa e o projeto zipado só para baixar e executar


14 Jul 2008, 14:45
Perfil
What is DDMS?
What is DDMS?

Data de registro: 17 Fev 2008, 06:12
Mensagens: 35
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
ótimo tutorial Marlus!!!!

valeu!


15 Jul 2008, 01:05
Perfil
Android application
Android application

Data de registro: 01 Jun 2008, 05:52
Mensagens: 64
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
bacana o tuto!

valeu!


15 Jul 2008, 16:21
Perfil
Android application
Android application

Data de registro: 24 Fev 2008, 15:45
Mensagens: 72
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
valeu, legal o Tutorial, vai ajudar bastante nos estudos. Só me tire uma dúvida:

Fui colocar pra rodar o "tuto" e apresentou erros nos métodos.... removi os @Override que ficam em cima de cada método e funcionou. Poderia me dizer pra que serve esses @Override?

obrigado desde já

Samuel :geek:


19 Jul 2008, 20:16
Perfil
Hello World!
Hello World!

Data de registro: 16 Mar 2008, 12:11
Mensagens: 25
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
samuel.cavanieri escreveu:
valeu, legal o Tutorial, vai ajudar bastante nos estudos. Só me tire uma dúvida:

Fui colocar pra rodar o "tuto" e apresentou erros nos métodos.... removi os @Override que ficam em cima de cada método e funcionou. Poderia me dizer pra que serve esses @Override?

obrigado desde já

Samuel :geek:


Opa tudo bom samuel

o @Override

o proprio eclipse coloca, mais quer dizer
que eu estou sobreescrevendo um método de uma interface
Estranho ter apresentado erro ai,

se quiser entrar mais no assunto deste @.....
pesquise sobre Anotation não sei muito sobre eles .

t++

abraços :mrgreen:


20 Jul 2008, 02:47
Perfil
What is Android?
What is Android?

Data de registro: 09 Jul 2008, 18:50
Mensagens: 1
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Olá pessoal,

Estou precisando criar um banco de dados no Android, via SQLiteDatabase, mas eu não estou conseguindo. Não tenho nenhuma activity. Na verdade, o componente que eu estou criando vai ser usado por outros componentes (esses sim possuem activities), mas meu componente deve ser totalmente independente dos outros.

Um trecho de código que estou fazendo:


private static final String DATABASE_NAME = "sdm";
private SQLiteDatabase mDB = null;
mDB = SQLiteDatabase.open(DATABASE_NAME, null);
if (mDB == null) {
    Log.e("[DATABASE]", "Nao conseguiu abrir o banco.. tentando criar novo banco");
    mDB = SQLiteDatabase.create(DATABASE_NAME, DATABASE_VERSION, null);
    if (mDB == null) {
    Log.e("[DATABASE]","Nao foi possivel criar o banco");
    } else {
    Log.e("[DATABASE]", "Banco criado");
    }
} else {
       Log.i("[DATABASE]","Abriu o banco");
}
 

Mas sempre dá o seguinte erro:
Failed to open database file "sdm" - unable to open database file

Alguém poderia me ajudar?

Obrigada,


13 Ago 2008, 18:01
Perfil
Hello World!
Hello World!

Data de registro: 16 Mar 2008, 12:11
Mensagens: 25
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
julianafsa escreveu:
Olá pessoal,

Estou precisando criar um banco de dados no Android, via SQLiteDatabase, mas eu não estou conseguindo. Não tenho nenhuma activity. Na verdade, o componente que eu estou criando vai ser usado por outros componentes (esses sim possuem activities), mas meu componente deve ser totalmente independente dos outros.

Um trecho de código que estou fazendo:


private static final String DATABASE_NAME = "sdm";
private SQLiteDatabase mDB = null;
mDB = SQLiteDatabase.open(DATABASE_NAME, null);
if (mDB == null) {
    Log.e("[DATABASE]", "Nao conseguiu abrir o banco.. tentando criar novo banco");
    mDB = SQLiteDatabase.create(DATABASE_NAME, DATABASE_VERSION, null);
    if (mDB == null) {
    Log.e("[DATABASE]","Nao foi possivel criar o banco");
    } else {
    Log.e("[DATABASE]", "Banco criado");
    }
} else {
       Log.i("[DATABASE]","Abriu o banco");
}
 

Mas sempre dá o seguinte erro:
Failed to open database file "sdm" - unable to open database file

Alguém poderia me ajudar?

Obrigada,




oie juliana, olha eu nunca trabalhei com o SQLite em uma classe fora de uma Activity,

quando comecei a trabalhar tb tentei fazer da maneira com que vc está fazendo e não tive sucesso, se vc conseguir post para podermos compartilhar mais conhecimentos :roll:

t++


14 Ago 2008, 12:00
Perfil
What is Android?
What is Android?

Data de registro: 24 Out 2008, 01:06
Mensagens: 5
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Olá!

Eu criei o projeto com este código, mas me retornou um monte de erros, esses que já haviam acontecido. Parece que ele não aceita os comandos de criar, abrir banco, etc...

Description Resource Path Location Type
The method createDatabase(String, int, int, null) is undefined for the type Trabalho Trabalho.java Trabalho/src/com/Trabalho line 130 Java Problem
The method next() is undefined for the type Cursor Pesquisas.java Trabalho/src/com/Trabalho line 95 Java Problem
The method next() is undefined for the type Cursor Trabalho.java Trabalho/src/com/Trabalho line 155 Java Problem
The method openDatabase(String, null) is undefined for the type Pesquisas Pesquisas.java Trabalho/src/com/Trabalho line 92 Java Problem
The method openDatabase(String, null) is undefined for the type Trabalho Trabalho.java Trabalho/src/com/Trabalho line 131 Java Problem
The method openDatabase(String, null) is undefined for the type Trabalho Trabalho.java Trabalho/src/com/Trabalho line 151 Java Problem
The method openDatabase(String, null) is undefined for the type Trabalho Trabalho.java Trabalho/src/com/Trabalho line 183 Java Problem
The method openDatabase(String, null) is undefined for the type Trabalho Trabalho.java Trabalho/src/com/Trabalho line 197 Java Problem
The method query(boolean, String, String[], String, String[], String, String, String, String) in the type SQLiteDatabase is not applicable for the arguments (boolean, String, String[], null, null, null, null, null) Pesquisas.java Trabalho/src/com/Trabalho line 93 Java Problem
The method query(boolean, String, String[], String, String[], String, String, String, String) in the type SQLiteDatabase is not applicable for the arguments (boolean, String, String[], null, null, null, null, null) Trabalho.java Trabalho/src/com/Trabalho line 154 Java Problem
The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 66 Java Problem
The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 68 Java Problem
The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 90 Java Problem
The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 93 Java Problem
The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 105 Java Problem
The method showAlert(String, int, String, String, boolean) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 107 Java Problem
The method startSubActivity(Intent, int) is undefined for the type new View.OnClickListener(){} Trabalho.java Trabalho/src/com/Trabalho line 79 Java Problem

Será que falta algum import??


24 Out 2008, 01:08
Perfil
Hello World!
Hello World!

Data de registro: 16 Mar 2008, 12:11
Mensagens: 25
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
:geek: Não amigo, você deve estar utilizando um SDK maior que o 0.8 beta essa aplicação foi desenvolvida com o SDK 0.8, tanto o 0.9 e o 1.0 ouve modificações nas API's alguns métodos deixarão de existir por isso essa aplicação não executa em SDK mais novos

:mrgreen:


24 Out 2008, 08:47
Perfil
What is Android?
What is Android?

Data de registro: 24 Out 2008, 01:06
Mensagens: 5
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Realmente, tem uns quantos metodos que eu tive que trocar hehe
mas consegui consertar :)


24 Out 2008, 14:03
Perfil
Android application
Android application
Avatar de usuário

Data de registro: 01 Fev 2008, 12:28
Mensagens: 84
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
guitarro17 escreveu:
Realmente, tem uns quantos metodos que eu tive que trocar hehe
mas consegui consertar :)


Poderia me dizer como ficou esse o showAlert?

abraço


24 Out 2008, 15:05
Perfil
What is Android?
What is Android?

Data de registro: 24 Out 2008, 01:06
Mensagens: 5
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Tipo, acho que tem q fazer tipo o que utilizaram nessa agenda:

viewtopic.php?f=7&p=711

Da uma olhada no método
private void showDialong(CharSequence s) {

Não sei se tem alguma maneira mais facil. Se tiver, me avise heheheh


24 Out 2008, 15:20
Perfil
What is a Activity?
What is a Activity?

Data de registro: 10 Nov 2008, 17:10
Mensagens: 13
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Oi Marlus,

Excelente tutorial, e eu passei ele para a versão 1.0 do compilador, onde substitui principalmente os seguintes pontos:

1)
//startSubActivity(intentPesquisar, 0);


Eu substitui por:

startActivityForResult(intentPesquisar, 0);


2)
//showAlert("ERRO", 1, "Não foi possivel criar"
           //        + " o banco de dados ", "ok", true);


Eu substitui por:

showDialong("Erro. Não foi possível criar o banco de dados.");


Onde:

/**
     * metodo que vai criar um AlertDialog e vai exibilo na tela com para
     * confirmar que o objeto foi adicionado na lista.
     */

    private void showDialong(CharSequence s) {
        Builder builder = new AlertDialog.Builder(Trabalho.this); // cria um objeto do tipo builder
        builder.setTitle("Informação.");      //seta o titulo coma frase informação
        builder.setMessage(s);                  //seta a mensagem passada como parâmetro
        AlertDialog alert = builder.create();   //Cria um objeto do tipo AlertDialong
        DialogInterface.OnClickListener listener = new ConfirmarCadastro(); // instancia uma classe que dispara o evento se o button do Dialong for acionado
        alert.setButton("ok", listener); //Adiciona o texto confirmar no button
        alert.show(); // Exibe na tela o Objeto AlertDialog
    }


E uma nova classe:

package com.trabalho;

import android.content.DialogInterface;
import android.util.Log;

public class ConfirmarCadastro implements DialogInterface.OnClickListener{

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        //AppCadastro.getInstance().limpar();
        Log.i("Dialong ",  "evento de clique");
    }

}


3)

// createDatabase(nomeBanco, 1, MODE_WORLD_READABLE, null); // cria o banco de dados caso ele não exista
            // banco = openDatabase(nomeBanco, null); // abrir a conexão com o banco de dados


Eu substitui por:

banco = openOrCreateDatabase(nomeBanco, 0, null);


Agora está sem erro de compilação, porém quando eu executo ele carega a janela certo, mas quando clico no botão Pesquisar ele mostra uma mensagem de exceção e não carrega a janela e fecha a aplicação. O método que faz esta chamada eu tive que substituir conforme havia descrito anteriormente:

Onde era: startSubActivity(intentPesquisar, 0);

Eu substitui por: startActivityForResult(intentPesquisar, 0);

Peço ao guitarro17 que disse que conseguiu consertar para ver se passou por esta situação e como a resolveu ou então a vc Marlus caso tenha idéia.

Um abraço a todos e obrigado

Robson

PS: O fonte está em anexo para análise.


Você não tem permissões suficientes para ver os arquivos anexados nesta mensagem.


02 Jan 2009, 20:10
Perfil
What is a Activity?
What is a Activity?

Data de registro: 10 Nov 2008, 17:10
Mensagens: 13
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Olá amigos,

Resolvi o problema de chamar a janela pesquisar, onde faltava apenas acrescentar no arquivo AndroidManifest.xml a classe Pesquisas.

Só que na execução da classe Pesquisas, quando eu começo a digitar aparece a lista de todas as pessoas cadastradas, porém ele não filtra, alguém fez o filtro funcionar. Por exemplo, eu digito Ana, mas ele continua listando tudo, e não lista apenas as pessoas que começam com o nome Ana.

O método pesquisar alterado para a versão 1.0 é o mostrado abaixo, eu deixei as partes em comentário para vocês terem idéia das substituições que tive que fazer:

private void  pesquisar(String t){
     ArrayAdapter<String> fileList = null;
     SQLiteDatabase bd = null;
     vector.clear();
     Pessoa pessoa = null;
     try {
        //bd = openDatabase(Trabalho.nomeBancoDeDados,null); //abre a conexão com o banco de dados
        //Cursor c = bd.query(true,"lista",new String[]{"id","nome","telefone","data"},null, null, null, null,null); // pesquisa o campos passandos no vetor de string no banco de dados e adiciona a o resultado da consulta no objeto Cursor
         bd = openOrCreateDatabase(Trabalho.nomeBancoDeDados, 0, null);
         Cursor c = bd.query("lista",new String[]{"id","nome","telefone","data"},null, null, null, null,null); // pesquisa o campos passandos no vetor de string no banco de dados e adiciona a o resultado da consulta no objeto Cursor
   
         ArrayList<String> result = new ArrayList<String>();
         
        //while(c.next()){
         while(c.moveToNext()){
            //Prenchendo um objeto do tipo pessoa com os dados recuperados do banco de dados
            pessoa = new Pessoa();
            pessoa.setNome(c.getString(c.getColumnIndex("nome")));
            pessoa.setTelefone(c.getString(c.getColumnIndex("telefone")));
            pessoa.setData(c.getString(c.getColumnIndex("data")));
            pessoa.setId(c.getInt(c.getColumnIndex("id")));
            //if (pessoa.getNome().equalsIgnoreCase(t)){
                vector.add(pessoa); // adiciona o objeto pessoa no vetor
            //} 
            pessoa = null;
           
        //adiciona a visão da lista
         result.add(c.getString(c.getColumnIndex("nome")) +
                 " - "+c.getString(c.getColumnIndex("telefone"))+" - "+
                 c.getString(c.getColumnIndex("data")));
         
         
        }
       
        fileList = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, result); //cria o modelo
        lista.setAdapter(fileList); //intala a lista
    //} catch (FileNotFoundException e) {
     } catch (Exception e) {
        // TODO Auto-generated catch block
        Log.d("SQL ERRO ",e.getMessage().toString());
    }finally{
        bd.close(); //fecha a conexão com o banco de dados
    }
   
 }


Se alguém tiver idéia do que pode ser eu agradeço a ajuda.

Um abraço a todos e um ótimo 2009

Robson


05 Jan 2009, 14:10
Perfil
What is DDMS?
What is DDMS?

Data de registro: 18 Out 2009, 23:33
Mensagens: 35
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Ola pessoal..sou novo no android, no java e afins...
Li esse tutorial, e fui fazer de acordo com o que eu queria... fiz desse jeito, mas da erro na hora da aplicação rodar no emulador..alguem pode me ajudar?



import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class HelloAndroid extends Activity implements OnClickListener {    
    private Button buts,butn;
    private EditText txtPrinc;


    @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(com.example.helloandroid.R.layout.main);

        //Recupera o botão passando por parametro o ID do mesmo.
        buts = (Button)findViewById(com.example.helloandroid.R.id.buts);
        butn = (Button)findViewById(com.example.helloandroid.R.id.butn);
       
        //Define para o botão o evento OnClickListener .
        buts.setOnClickListener(this);
        butn.setOnClickListener(this);
        txtPrinc = (EditText)findViewById(com.example.helloandroid.R.id.txtPrinc);

        //#####ESSA PARTE QUE GERA O ERRO#######################
        SQLiteDatabase db = openOrCreateDatabase("android",Context.MODE_PRIVATE,null);
        Cursor c = db.query("TB_USUARIOS", new String[]{"id,nome"} , null, null, "nome", null, null,null);
        txtPrinc.setText(c.getString(1));
      // #######################
    }
   
     public void onClick(View v) {
           
         if (v==buts)
         {
             //txtPrinc.setText("Botao S!");
         }else if (v==butn)
         {
             //txtPrinc.setText("Botao N!");
         }
        }
}

 



valews!

:ugeek:

Rafael Spessotto


23 Out 2009, 16:18
Perfil
What is Android?
What is Android?

Data de registro: 29 Set 2009, 16:38
Mensagens: 7
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Esse tutorial funciona direito nas versoes especificadas, porem alguem poderia reescreve-lo para a versao 1.6?
Se possivel serei grato!


26 Out 2009, 11:28
Perfil
What is Android?
What is Android?

Data de registro: 07 Mai 2010, 20:09
Mensagens: 1
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
o que esta causando erro é a tabela criada com VARCHAR2


07 Mai 2010, 20:12
Perfil
What is Android?
What is Android?

Data de registro: 04 Dez 2009, 15:28
Mensagens: 1
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
:mrgreen: Puderá todos compartilhassem seu conhecimento assim, ainda mas para pessoas que buscam informações para iniciar, valeu muito obrigado, excelente material !!!!


05 Out 2010, 12:14
Perfil
What is a Activity?
What is a Activity?

Data de registro: 02 Fev 2011, 15:58
Mensagens: 14
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Alguém tem os fontes postado ?

Obrigado !


03 Fev 2011, 18:39
Perfil
What is a Activity?
What is a Activity?

Data de registro: 31 Jan 2011, 00:05
Mensagens: 14
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Android
Bom dia!

Fiz todo o procedimento e estou rodando no SDK 2.1 API versão 7 porém dá a seguinte mensagem de erro:The application com.Trabalho has stopped an unexpectedly. Alguém teria alguma idéia de como eu faço para debugar minha aplicação Android?


23 Mar 2011, 11:37
Perfil
What is a Activity?
What is a Activity?
Avatar de usuário

Data de registro: 05 Jul 2011, 23:45
Mensagens: 14
Localização: Serra - ES
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
Meu amigo eu fiz o download dessa versao corrigida por vc mas com erro no botao pesquisa eu tentei rodar aqui nomeu eclipse e deu vario erros eu nem conseguir compilar o projeto. Na versao anterior eu conseguir acertar algumas coisas com seu tutorial mas ainda existia problemas. Vc tem a versao final desse projeto?

robsonoracle escreveu:
Oi Marlus,

Excelente tutorial, e eu passei ele para a versão 1.0 do compilador, onde substitui principalmente os seguintes pontos:

1)
//startSubActivity(intentPesquisar, 0);


Eu substitui por:

startActivityForResult(intentPesquisar, 0);


2)
//showAlert("ERRO", 1, "Não foi possivel criar"
           //        + " o banco de dados ", "ok", true);


Eu substitui por:

showDialong("Erro. Não foi possível criar o banco de dados.");


Onde:

/**
     * metodo que vai criar um AlertDialog e vai exibilo na tela com para
     * confirmar que o objeto foi adicionado na lista.
     */

    private void showDialong(CharSequence s) {
        Builder builder = new AlertDialog.Builder(Trabalho.this); // cria um objeto do tipo builder
        builder.setTitle("Informação.");      //seta o titulo coma frase informação
        builder.setMessage(s);                  //seta a mensagem passada como parâmetro
        AlertDialog alert = builder.create();   //Cria um objeto do tipo AlertDialong
        DialogInterface.OnClickListener listener = new ConfirmarCadastro(); // instancia uma classe que dispara o evento se o button do Dialong for acionado
        alert.setButton("ok", listener); //Adiciona o texto confirmar no button
        alert.show(); // Exibe na tela o Objeto AlertDialog
    }


E uma nova classe:

package com.trabalho;

import android.content.DialogInterface;
import android.util.Log;

public class ConfirmarCadastro implements DialogInterface.OnClickListener{

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        //AppCadastro.getInstance().limpar();
        Log.i("Dialong ",  "evento de clique");
    }

}


3)

// createDatabase(nomeBanco, 1, MODE_WORLD_READABLE, null); // cria o banco de dados caso ele não exista
            // banco = openDatabase(nomeBanco, null); // abrir a conexão com o banco de dados


Eu substitui por:

banco = openOrCreateDatabase(nomeBanco, 0, null);


Agora está sem erro de compilação, porém quando eu executo ele carega a janela certo, mas quando clico no botão Pesquisar ele mostra uma mensagem de exceção e não carrega a janela e fecha a aplicação. O método que faz esta chamada eu tive que substituir conforme havia descrito anteriormente:

Onde era: startSubActivity(intentPesquisar, 0);

Eu substitui por: startActivityForResult(intentPesquisar, 0);

Peço ao guitarro17 que disse que conseguiu consertar para ver se passou por esta situação e como a resolveu ou então a vc Marlus caso tenha idéia.

Um abraço a todos e obrigado

Robson

PS: O fonte está em anexo para análise.

_________________
Ribeirot
Eclipse 3.5 SDK 12
Celular Xperia Mini Pro


16 Ago 2011, 15:56
Perfil
Android application
Android application

Data de registro: 01 Nov 2010, 18:29
Mensagens: 93
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
Marlus Dias Silva escreveu:
julianafsa escreveu:
Olá pessoal,

Estou precisando criar um banco de dados no Android, via SQLiteDatabase, mas eu não estou conseguindo. Não tenho nenhuma activity. Na verdade, o componente que eu estou criando vai ser usado por outros componentes (esses sim possuem activities), mas meu componente deve ser totalmente independente dos outros.

Um trecho de código que estou fazendo:


private static final String DATABASE_NAME = "sdm";
private SQLiteDatabase mDB = null;
mDB = SQLiteDatabase.open(DATABASE_NAME, null);
if (mDB == null) {
    Log.e("[DATABASE]", "Nao conseguiu abrir o banco.. tentando criar novo banco");
    mDB = SQLiteDatabase.create(DATABASE_NAME, DATABASE_VERSION, null);
    if (mDB == null) {
    Log.e("[DATABASE]","Nao foi possivel criar o banco");
    } else {
    Log.e("[DATABASE]", "Banco criado");
    }
} else {
       Log.i("[DATABASE]","Abriu o banco");
}
 

Mas sempre dá o seguinte erro:
Failed to open database file "sdm" - unable to open database file

Alguém poderia me ajudar?

Obrigada,




oie juliana, olha eu nunca trabalhei com o SQLite em uma classe fora de uma Activity,

quando comecei a trabalhar tb tentei fazer da maneira com que vc está fazendo e não tive sucesso, se vc conseguir post para podermos compartilhar mais conhecimentos :roll:

t++


É porque o SqliDatabase precisa de um contexto que na verdade é um item que precisa ser filho da classe Context. Para isso você tem que utilizar a classe Context e passar um Context para a sua classe que controla a criação do banco de dados.

É por isso que muita gente cria banco utilizando os métodos dentro de uma Activity, pois uma Activity é um Context.

Não está muito bem explicado, pois isso eu aprendi sozinho e não sei passar para outras pessoas, mas informações acesse: http://developer.android.com/reference/ ... ntext.html

_________________
Não existem problemas e sim soluções!


24 Ago 2011, 15:14
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
Galera,

Se o problema é o Context, basta vc passá-lo para a classe que está "cuidando" do banco (que seria o seu DAO), pelo construtor. Já que vc terá que criar o banco na sua primeira activity mesmo.

Banco db = new Banco(this);


Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


25 Ago 2011, 05:20
Perfil WWW
Android application
Android application

Data de registro: 01 Nov 2010, 18:29
Mensagens: 93
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
É isso ae antunes, só lembrando que pode ser chamado dentro de qualquer classe que seja uma Activity, pois uma Activity é um Context e não necessáriamente na primeira tela.

Mas, se você quer criar o banco antes de rodar sua aplicação, tem que fazer o que o antunes disse, é só chamar o construtor a Activity principal da sua aplicação.

Blz, acho que está resolvido!

_________________
Não existem problemas e sim soluções!


25 Ago 2011, 14:13
Perfil
Android application
Android application

Data de registro: 08 Set 2011, 15:59
Mensagens: 66
Localização: Canoas, RS
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
Oi gente eu estou com mais uma dúvida com relaçao ao cursor e consulta de dados.Analisando esse exemplo, eu entendi que nestes campos:


pessoa.setNome(c.getString(c.getColumnIndex("nome")));

pessoa.setTelefone(c.getString(c.getColumnIndex("telefone")));

pessoa.setData(c.getString(c.getColumnIndex("data")));

pessoa.setId(c.getInt(c.getColumnIndex("id")));
 


o objeto cursor terá apenas 1 registro para cada campo.Mas quando tiver mais de um registro, por exemplo, um "id" estiver relacionado com "n" registros de "telefone", como seria a sintaxe para resgatar estes registros?

[]'s


03 Out 2011, 17:57
Perfil
Hello World!
Hello World!

Data de registro: 15 Dez 2010, 10:33
Mensagens: 26
Localização: Limeira,SP
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
Boa tarde.

Será que alguém poderia fazer a gentileza de colocar o código fonte deste exemplo acima atualizado e corrigido.
Será de grande importância para quem esta começando e estudando java assim como eu..
Abraços a todos.

Grato
Wagner

_________________
Luis Wagner dos Santos
luis.wagner@gmail.com
Campanha: Facilite sua vida e a dos outros usuários
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido


20 Out 2011, 17:33
Perfil
What is Android?
What is Android?

Data de registro: 23 Out 2011, 21:16
Mensagens: 1
Mensagem Re: Trabalhando com o Banco de Dados SQLite no Android.
Marlus Dias Silva escreveu:
jijo escreveu:
Muito bom Marlus, ainda não botei pra rodar (falta de tempo pra mexer no android), mas olhando por cima, acho que você se esqueceu de postar a classe pessoa não?!

abraço


Verdade esqueci sim

daki a pouco vou upar ela negocio que não to com o pc que desenvolvi a aplicação até as 3 da tarde já vai estar a classe pessoa e o projeto zipado só para baixar e executar



Opa blz?
Aonde que eu consigo baixar o zip com o código?


23 Out 2011, 21:21
Perfil
Android application
Android application

Data de registro: 14 Out 2011, 17:02
Mensagens: 88
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
Muito bom esse tutorial! Me ajudou muito na questão de listar dados do bd.
Só que eu tenho uma dúvida: é possível separar os dados listados em colunas?
É que no tutorial os dados são separados por um hífen, e minha listview ficou meio "bagunçada" utilizando esse método.
Desde já agradeço qualquer ajuda!

/xx


27 Out 2011, 15:05
Perfil
What is Android?
What is Android?

Data de registro: 04 Nov 2011, 10:53
Mensagens: 6
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
julianafsa escreveu:
Olá pessoal,

Estou precisando criar um banco de dados no Android, via SQLiteDatabase, mas eu não estou conseguindo. Não tenho nenhuma activity. Na verdade, o componente que eu estou criando vai ser usado por outros componentes (esses sim possuem activities), mas meu componente deve ser totalmente independente dos outros.

Um trecho de código que estou fazendo:


private static final String DATABASE_NAME = "sdm";
private SQLiteDatabase mDB = null;
mDB = SQLiteDatabase.open(DATABASE_NAME, null);
if (mDB == null) {
    Log.e("[DATABASE]", "Nao conseguiu abrir o banco.. tentando criar novo banco");
    mDB = SQLiteDatabase.create(DATABASE_NAME, DATABASE_VERSION, null);
    if (mDB == null) {
    Log.e("[DATABASE]","Nao foi possivel criar o banco");
    } else {
    Log.e("[DATABASE]", "Banco criado");
    }
} else {
       Log.i("[DATABASE]","Abriu o banco");
}
 

Mas sempre dá o seguinte erro:
Failed to open database file "sdm" - unable to open database file

Alguém poderia me ajudar?

Obrigada,


Ola, bom sei que sua duvida e antiga e já ate deve ter resolvido mas como não foi facio achar a resposta pra mim resolvi compartilhar ela com vocês




import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class dbSQLite{
    public SQLiteDatabase dataBase = null;
    public Cursor cursor;
    private Context context;
   
    public dbSQLite(Context context){
        this.context = context;
    }
   
    public void iniciaBanco(){
        try{
            dataBase = context.openOrCreateDatabase("android_database",Context.MODE_WORLD_READABLE,null);
            String query = "CREATE TABLE IF NOT EXISTS \"cadastro\" (CODIGO integer NOT NULL PRIMARY KEY AUTOINCREMENT,NOME varchar(50) NOT NULL";
            dataBase.execSQL(query);
        }catch(Exception erro){
            Log.e("DATABASE","Erro ao iniciar o banco: "+erro);
        }
    }
   
    public void fecharBanco(){
        try{
            dataBase.close();
        }catch(Exception erro){
            Log.e("DATABASE","Erro ao finalizar o banco: "+erro);
        }
    }
   
}
 


pra chamar e simples...


    dbSQLite dataBase = new dbSQLite(this);
        dataBase.iniciaBanco();
 


04 Nov 2011, 11:02
Perfil
Android application
Android application

Data de registro: 16 Jun 2011, 23:11
Mensagens: 65
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
olá, como eu posso saber se o banco realmente foi criado, pois minhas consultas não estão retornando nada... nem da erro na hora de inserir nem de consultar...

vlw


06 Nov 2011, 14:20
Perfil
What is Android?
What is Android?

Data de registro: 04 Nov 2011, 10:53
Mensagens: 6
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
gabriellacerda escreveu:
olá, como eu posso saber se o banco realmente foi criado, pois minhas consultas não estão retornando nada... nem da erro na hora de inserir nem de consultar...

vlw


posta o código da criação do bando e o da consulta assim da pra ajudar.


07 Nov 2011, 17:37
Perfil
Android application
Android application

Data de registro: 16 Jun 2011, 23:11
Mensagens: 65
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
opa, lauro... já consegui resolver... era o nome da tabela que tava errado na consulta... vlw...


07 Nov 2011, 18:10
Perfil
What is Android?
What is Android?

Data de registro: 20 Fev 2012, 21:50
Mensagens: 1
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
Boas...

É possível arranjar este projeto na ultima versão do sdk?
Pois eu não consigo compilar... dá erros!!!

Obrigado


21 Fev 2012, 23:39
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 30 Dez 2011, 10:10
Mensagens: 131
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
onde fica instalado o arquivo do banco de dados qndo eu instalo o apk no meu aparelho?


03 Abr 2012, 18:57
Perfil
What is Android?
What is Android?

Data de registro: 27 Jul 2012, 10:34
Mensagens: 8
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
Oi, eu armazenei uma path de um arquivo no banco de dados e quando tento recuperar da erro,

o path seria algo como "/mnt/sdcard/folder/", na hora de armazenar está de boa e se eu recupero todos os dados do banco tbm obtenho certinho o path

porém quando eu tento recuperar a tupla utilizando no where um path especifico, por exemplo:

Cursor c = dbHandler.db.query("conteudos", new String[] {"_id","name", "path"}, "path=/mnt/sdcard/folder/", null, null, null, null);


Quando executa está linha meu app trava, e no LogCat o erro que é apresentado é o seguinte:

07-27 14:05:57.219: I/SqliteDatabaseCpp(20301): sqlite returned: error code = 1, msg = near "/": syntax error,...

Acredito que seja algum tipo de formatação dos caracteres de '/' do sqlite, lembro para para alguns db por exemplo temos que colocar entre aspas simples entre a string e talz.

Alguém sabe como resolver este problema?


28 Jul 2012, 14:23
Perfil
Android application
Android application

Data de registro: 01 Nov 2010, 18:29
Mensagens: 93
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
gabriellacerda escreveu:
olá, como eu posso saber se o banco realmente foi criado, pois minhas consultas não estão retornando nada... nem da erro na hora de inserir nem de consultar...

vlw


Use a pespectiva DDMS no eclipse, navegue até a aba File Explorer, procure pelo seu projeto seguido do pacote e dentro deste vai ter uma pasta chamada databases. Se tiver essa pasta, abra-a e veja se tem um arquivo com o nome do banco que você criou.
Assim você ver se o banco está criado ou não.
Outra forma é acessar o emulador via console do seu computador, mas esse método é mais complicado.
Abraços!

_________________
Não existem problemas e sim soluções!


22 Ago 2012, 15:11
Perfil
Hello World!
Hello World!

Data de registro: 10 Jan 2014, 09:34
Mensagens: 26
Mensagem Re: [TUTORIAL] Trabalhando com Banco de Dados SQLite no Andr
como pegar um imagem que esta salva no drawable pelo diretório TXT que eu recebo do banco?


30 Jan 2014, 14:55
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 41 Mensagens ] 

Quem está online

Usuários vendo este fórum: abruzzi, adautox, adelar, ademir.carvalhojr, Aderbal Nunes, agtavares, alexcost2002, Analista, andi, andrewort, andrigo, Androidthebest, Antonio Carlos, Aparec, arkanjo, arnaldo.miranda, arquivo51, Avelino Mateus Neto, avsouza, axellsan, bernardodauer, bomcabelo, brunogh, BrunoO, btleandro, btminzon, caciara, caliow, careisjr, cassiano, celson, cenatech, claudio, cosmotheoro, Costa, DaDih*, Daniel Batista, danilosv, dbuarque, deivisonrpg, Diego Rufino, Dookan, dreyer, du_sr, Dudi_FC, dudu795, edervieira, eferrari, estratecnologia, eXagon, Felipe, Felipe Ferreira, Flávio Robertgo, freak, Gabriel Laet, gedoor, GuilhermeZampieri, gusrp, helder84, Heritrix, ismavolk, jaydson, jgfelix, jhou, juliancesar, juliaojunior, juliherms, Julio Assis, JuniorE, jwv, kidush, klausenner, Kureiton, kusanaguy, lafamac, leofernandesmo, lisbao, lkunta, lucasmadeira, lucastgomes, luizcarlosvb, luizcyber, luizfilipe, Lúcio Zanette, Mace Windu, maolveira, marcelosv, marcosandreao, marcosf63, Marlosm, maurosilva, mikasjau, msmdark, mtomazzi, mvoto, nsansilva, Odigooogle™, oliverlessa, Patricia, Paulo, Paulo Bizzo, paulo.weber, paulosantos, pgsnit, PicsearchDroid, Qui-Gon Jinn, r.wil, rafaelmonoh, Ranieri, rcotonet, regis.ror, rfrafa, Roberto, rodrigo_mg, rogeriokta, rotmeil, Samantha, scattonevi, ScoobyGB, sergio, snonca, soulmachine, srmoreira, Telekom [Bot], thienne, thosjanas, Topeca, ubiratan, vanmars, vicfalmac, voliverio, Webnet, wilson.slima, xikin, yuri82, zenden1503 e 2 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:
cron

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi