Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Re: Qual melhor forma de passar o banco para o celular.

Bom Dia Italo

Eu crio o Banco na Aplicação, veja abaixo o meu arquivo CriarBanco.java, que faz isto pra mim, toda vez que vc loga no sistema ele verifica se o banco existe e se está na versão atual, caso não ele roda este, caso já esteje correto ele segue em frente a aplicação. Ao realizar alguma alteração neste arquivo basta modificar a VERSAO_BANCO. Não repare a estrutura das tabelas, algumas eu trago elas no servidor interno através de JSON na sincronização, dai eu utilizo a mesma estrutura que está lá e lá o sistema é antigo e eu não tenho o acesso a alterá-lo.

package br.com.sis.banco;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import br.com.sis.banco.SQLiteHelper;

public class CriarBanco {
    protected SQLiteDatabase db;
    private static final String NOME_BANCO = "bancoandroid";
    private static final int VERSAO_BANCO = 1;
    private static final String[] SCRIPT_DATABASE_DELETE = new String[] {
            "DROP TABLE IF EXISTS TBREPRESENTANTE;", "DROP TABLE IF EXISTS TBCIDADE;", "DROP TABLE IF EXISTS TBBAIRRO;" };

    private static final String[] SCRIPT_DATABASE_CREATE = new String[] {
   
            "create table [TBREPRESENTANTE] (" +
                    "[ID] VARCHAR(6) not null, [COD_REPRES] INTEGER, [NOME] VARCHAR(60), " +
                    "[TIPO] VARCHAR(1),  [SITUACAO] VARCHAR(1), [SENHA] VARCHAR(15), " +
                    "[SENHA_ANT] VARCHAR(15), PRIMARY KEY (ID) );",
            "insert into [TBREPRESENTANTE] (ID, COD_REPRES, NOME, TIPO, SITUACAO, SENHA, SENHA_ANT ) VALUES ( " +
                    "'TESTE', 1, 'Teste do Sistema', 'A', 'A', 'teste', 'teste', '354712040423347', 'P' );",
                   
            "create table [TBCIDADE] (" +
                    "[ID_REPRES] VARCHAR(6) not null, [CIDADE] VARCHAR(30) not null," +
                    "[UF] VARCHAR(2) not null, [CONTROLE] VARCHAR(1) ," +
                    "PRIMARY KEY (ID_REPRES, CIDADE, UF)," +
                    "FOREIGN KEY (ID_REPRES) REFERENCES TBREPRESENTANTE (ID) );",

            "create table [TBBAIRRO] ([ID_REPRES] VARCHAR(6) not null, [CIDADE] VARCHAR(30) not null, " +
                    "[UF] VARCHAR(2) not null, [BAIRRO] VARCHAR(30) not null, [CONTROLE] VARCHAR(1)," +
                    "PRIMARY KEY (ID_REPRES, CIDADE, UF, BAIRRO)," +
                    "FOREIGN KEY (ID_REPRES) REFERENCES TBREPRESENTANTE (ID) );" };

    private SQLiteHelper dbHelper;

    public CriarBanco(Context ctx) {
        dbHelper = new SQLiteHelper(ctx, CriarBanco.NOME_BANCO,
                CriarBanco.VERSAO_BANCO, CriarBanco.SCRIPT_DATABASE_CREATE,
                CriarBanco.SCRIPT_DATABASE_DELETE);
        db = dbHelper.getWritableDatabase();
        Log.i("AFV", "Banco de dados aberto");
    }

    public void fecharBanco() {
        if (dbHelper != null) {
            dbHelper.close();
        }
    }
}


Tem um outro arquivo necessário que interagem com este que é o SQLiteHelper.java, se desejar te envio ele tb.


--
[]´s
Evandro Choma
Engenheiro da Computação


Em 27 de julho de 2012 09:28, Maicon Strey <mstrey@gmail.com> escreveu:
Pra fazer a sincronização utilize WebService.

Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
Minha lista de presentes: clique aqui
Linux user: #525086
------------------



2012/7/27 Italo <italogustavoaraujo@gmail.com>
Acho que vou fazer a criação dentro da app mesmo, mas eu queria que após a base de dados ser criada na app tivesse uma opção pode ser um botão que eu sincronizasse os dados das tabela com o servidor e o app.

OBS: Os dados da do servidor ficam no Banco sqlserver 2008, tem como fazer essa sincronização? Se tiver, alguém tem algum exemplo?

vlw




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

0 comentários:

Postar um comentário