Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Dúvida com ORMLite

vc ta fechando dois parênteses e abrindo somente um..
 trabalhadorDao.executeRaw("ALTER TABLE 'trabalhadores' ADD COLUMN datadeentrada DATETIME);");

Em 6 de abril de 2015 11:42, Ricardo Cardoso <rick.duk@gmail.com> escreveu:
Olá, estou reabrindo esse topico porque não consegui atualizar as tabelas do banco de dados sqlite.
Na Classe DataBaseHelper no método onUpgrade() fiz assim:

@Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int oldVersion, int newVersion) {
        try {
            getTrabalhadorDao();

            trabalhadorDao.executeRaw("ALTER TABLE 'trabalhadores' ADD COLUMN datadeentrada DATETIME);");
            onCreate(sqLiteDatabase, connectionSource);
        } catch (SQLException e) {
            Log.e("APP", "onUpgrade() " + e.getLocalizedMessage());
        }
    }
Ele da esse erro no console e não cria o campo
java.sql.SQLException: Could not run raw execute statement ALTER TABLE 'trabalhadores' ADD COLUMN datadeentrada DATETIME;

Alguém pode ajudar?

Em seg, 2 de mar de 2015 às 16:56, Ivo Sestren Junior <ivo@sestren.com.br> escreveu:
Tens que verificar a versão pelo oldVersion e newVersion e rodar os comandos necessários só destas versões.

Pelo seu exemplo, o onUpdate você esta dando um dropTable, é claro que com isto sua tabela será apagada, juntamente com todos os dados sempre que atualizar a versão.

2015-03-02 16:45 GMT-03:00 Márcio Fornari <marciofornari@gmail.com>:

Faz tempo que não trabalho com ormLite, mas no caso vc teria que verificar a versão do seu banco e fazer por exemplo assim:

if (oldVersion < 2) {    // we added the age column in version 2    dao.executeRaw("ALTER TABLE `account` ADD COLUMN age INTEGER;");  }  if (oldVersion < 3) {    // we added the weight column in version 3    dao.executeRaw("ALTER TABLE `account` ADD COLUMN weight INTEGER;");  }

Em 2 de março de 2015 16:34, Ricardo Cardoso <rick.duk@gmail.com> escreveu:

Toda vez que gero uma versão nova da base de dados, meu banco de dados mobile é completamente apagado...
Tipo, se eu alterei apenas alguns campos na tabela preciso criar uma nova versão do banco de dados, quando faço isso ele apaga e cria de novo, creio que não entendi muito bem como funciona o metodo onUpgrade(). Meu databaseHelper está assim:

public class DataBaseHelper extends OrmLiteSqliteOpenHelper{

    private static final String DATABASE_NAME = "database.db";
    private static final int DATABASE_VERSION = 13;

    private Dao<Tabela01, Long> tabela01Dao = null;
    private Dao<Tabela02, Long> tabela02Dao = null;



    public DataBaseHelper(Context context){
        super(context, DATABASE_NAME, null, DATABASE_VERSION, R.raw.ormlite_config);
    }

@Override
    public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {
        try {
            TableUtils.createTable(connectionSource, Tabela01.class);
            TableUtils.createTable(connectionSource, Tabela02.class);

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int oldVersion, int newVersion) {
        try {
            TableUtils.dropTable(connectionSource, Tabela01.class, true);
            TableUtils.dropTable(connectionSource, Tabela02.class, true);
            onCreate(sqLiteDatabase, connectionSource);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
Se mudo alguma coisa na tabela02 preciso que só atualize ela, sem perder os dados.... tem jeito?

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
............
Márcio Fornari 

..........................................................................

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
............
Márcio Fornari 

..........................................................................

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

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

0 comentários:

Postar um comentário