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
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;}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(sqlCreate);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {db.execSQL(sqlDelete);onCreate(db);}-------------------------------------------------------------------------------------------e essa é meu DAOpublic 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 eDesenvolvimento 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 eDesenvolvimento de Sistemas
--- "A vida derruba, mas você escolhe se quer levantar ou não." -----






0 comentários:
Postar um comentário