Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] problemas com sqlhelper

Oi Paulo,


O método onCreate do SQLiteOpenHelper só é chamado uma vez na vida da sua aplicação, ou seja, o que você pode fazer é mandar todos os SQLs para serem executados na única vez que o onCreate é chamado. Ou como você já até tem um SQLiteDatabase no seu construtor, você pode chamar o execSQL nele do construtor de cada um dos seus DAOs mesmo:

public CtaPagarDAO(Context ctx) {
    dbHelper = // ...
    db = dbHelper.getWritableDatabase();
    db.execSQL(SCRIPT_DB_CREATE);
    db.close();
}

Toshi Kurauchi


2012/2/23 Clebão - EcoCentauro <clebaori@gmail.com>
Não é necessário colocar "[ ]" nos nomes dos campos.

Em 23 de fevereiro de 2012 10:16, Paulo HP Santos <paulinhohps09@gmail.com> escreveu:

esse seria minha classe helper:

public class SQLiteHelper extends SQLiteOpenHelper{
private String sqlCreate;
private String sqlDelete;
public SQLiteHelper( Context ctx, String nomeBD, int versaoBD, String sqlCreate, String sqlDelete){
super(ctx, nomeBD, null, versaoBD);
this.sqlCreate = sqlCreate;
this.sqlDelete = sqlDelete;
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(sqlCreate);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(sqlDelete);
onCreate(db);
}



-------------------------------------------------------------------------------------------

e essa é meu DAO

public class CtaPagarDAO {
private SQLiteDatabase db;
private SQLiteHelper dbHelper;
private String nomeTabela = "CTAPAGAR";
private static final String SCRIPT_DB_DELETE = "DROP TABLE IF EXISTS CTAPAGAR";
private static final String SCRIPT_DB_CREATE = "CREATE TABLE [CTAPAGAR] (" +
"[COD_CTAPAGAR] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," +
"[DESCRICAO] TEXT(60) NOT NULL," +
"[VALOR_PRC] REAL(14, 2) NOT NULL," +
"[VALOR_PG] REAL(14, 2)," +
"[DT_VENC] DATE NOT NULL," +
"[DT_PG] DATE," +
"[DT_EMISSAO] DATE NOT NULL," +
"[STATUS] INTEGER(1) NOT NULL," +
"[COD_CATEGORIA] INTEGER(4) NOT NULL," +
"[ESPECIE_PGTO] TEXT(10)," +
"[COD_FORNEC] INTEGER(4), " +
"[NUMPARC] TEXT(10), " +
"[QTD_PRC] INTEGER);";
public CtaPagarDAO (Context ctx){
dbHelper = new SQLiteHelper(ctx, "DBFINANCEIRO", 1, SCRIPT_DB_CREATE, SCRIPT_DB_DELETE);
db = dbHelper.getWritableDatabase();
db.close();
}


Em 23 de fevereiro de 2012 09:08, Marcelo Henrique <marcelohd02@gmail.com> escreveu:

Cara nunca tive problema parecido . como voce tah criando esses DB.?

Em 23 de fevereiro de 2012 10:05, Paulo HP Santos <paulinhohps09@gmail.com> escreveu:

Bom dia a todos.

Estou com um problema para criar tabelas usando o SqlHelper, no caso eu tenho que criar 4 tabelas, mas só é criada apenas uma tabela, eu utilizo para cada tabela uma classe DAO, então eu chamo o método de criação do helper ao iniciar cada DAO, mas no meu caso só consegue cria a primeira tabela. Alguém já teve algum problema parecido?? Será que para minha solução eu devo criar uma sql com todas as tabelas e executar ele de uma vez só??

Desde já agradeço.

--
Paulo HP Santos


Tecnólogo em  Análise e
Desenvolvimento de Sistemas

--- "A vida derruba, mas você escolhe se quer levantar ou não." -----






--
                                              - Marcelo Henrique -
  "Se não puder se destacar pelo talento, vença pelo esforço." (Dave Weinbaum)




--
Paulo HP Santos


Tecnólogo em  Análise e
Desenvolvimento de Sistemas

--- "A vida derruba, mas você escolhe se quer levantar ou não." -----





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

0 comentários:

Postar um comentário