Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Erro: "...constraint failed" Ao inserir valores no Sqlite

O erro é bastante claro: constraint.
Pode ser uma foreign key inválida, ou um valor null em um campo NOT NULL, entre outros tipos de constraint.

On Oct 30, 2012 3:25 AM, "Bruno Milhan" <brunomilhan2@gmail.com> wrote:
Boa noite amigos, tudo bem?

Estou tendo alguns problemas ao inserir valores em um bd... É verdade
que o sqlite no android não aceita valores booleanos? Sera que é
isso... Mas eu ja usei valores booleanos em outro projetos... Agradeço
antecipadamente as repostas, ja esta de madrugada talvez o erro seja
simples e o cansaço esta me impedindo de enxerga-lo...
A tabela em questão:

private static final String AGENDA_CREATE_TABLE = "CREATE TABLE "
                        + TABELA_AGENDA + "("
                        + COLUNA_ID_AGENDA                                      + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                        + COLUNA_TITULO_AGENDA                          + " TEXT,"
                        + COLUNA_HORA_INICIAL_AGENDA            + " LONG NOT NULL,"
                        + COLUNA_MINUTO_INICIAL_AGENDA          + " LONG NOT NULL,"
                        + COLUNA_HORA_FINAL_AGENDA                      + " LONG NOT NULL,"
                        + COLUNA_MINUTO_FINAL_AGENDA            + " LONG NOT NULL,"
                        + COLUNA_VOLUME_AGENDA                          + " INTEGER NOT NULL,"
                        + COLUNA_RETORNO_SMS_AGENDA                     + " BOOLEAN NOT NULL,"
                        + COLUNA_STATUS_AGENDA                          + " BOOLEAN NOT NULL,"
                        + COLUNA_SEGUNDA_REPETIR                        + " BOOLEAN NOT NULL,"
                        + COLUNA_TERCA_REPETIR                          + " BOOLEAN NOT NULL,"
                        + COLUNA_QUARTA_REPETIR                         + " BOOLEAN NOT NULL,"
                        + COLUNA_QUINTA_REPETIR                         + " BOOLEAN NOT NULL,"
                        + COLUNA_SEXTA_REPETIR                          + " BOOLEAN NOT NULL,"
                        + COLUNA_SABADO_REPETIR                         + " BOOLEAN NOT NULL,"
                        + COLUNA_DOMINGO_REPETIR                        + " BOOLEAN NOT NULL,"
                        + COLUNA_ID_SMS_AGENDA                          + " INTEGER,"
                        + " FOREIGN KEY ( " + COLUNA_ID_SMS_AGENDA + " )  REFERENCES " +
TABELA_SMS + " (" + COLUNA_ID_SMS
                        + " ) ON DELETE RESTRICT ON UPDATE CASCADE);";

O metodo insere:

public long inserirAgenda(String titulo, int hinicial, int minicial,
int hfinal, int mfinal, int valor_volume, boolean sms, boolean[]
repetir, int id_sms,boolean status){
                ContentValues values= new ContentValues();
                values.put(COLUNA_TITULO_AGENDA, titulo);
                values.put(COLUNA_HORA_INICIAL_AGENDA, hinicial);
                values.put(COLUNA_MINUTO_INICIAL_AGENDA, minicial);
                values.put(COLUNA_HORA_FINAL_AGENDA, hfinal);
                values.put(COLUNA_MINUTO_FINAL_AGENDA, mfinal);
                values.put(COLUNA_VOLUME_AGENDA, valor_volume);
                values.put(COLUNA_RETORNO_SMS_AGENDA, sms);
                values.put(COLUNA_STATUS_AGENDA, "true");
                values.put(COLUNA_SEGUNDA_REPETIR, repetir[0]);
                values.put(COLUNA_TERCA_REPETIR, repetir[1]);
                values.put(COLUNA_QUARTA_REPETIR, repetir[2]);
                values.put(COLUNA_QUINTA_REPETIR, repetir[3]);
                values.put(COLUNA_SEXTA_REPETIR, repetir[4]);
                values.put(COLUNA_SABADO_REPETIR, repetir[5]);
                values.put(COLUNA_DOMINGO_REPETIR, repetir[6]);
                values.put(COLUNA_ID_SMS_AGENDA, id_sms);
                Log.i("BANCO DE DADOS", "Valores inseridos com sucesso na tabela Agenda!");
                return mDb.insert(TABELA_AGENDA, null, values);


        }


LogCat:

10-30 05:19:12.953: E/Database(19566): Error inserting quarta=false
status=true terca=false domingo=false minuto_final=1 sexta=true
sabado=false retorno_sms=true id_sms=0 minuto_inicial=58
hora_inicial=2 titulo=brunette  volume=5 quinta=false hora_final=2
segunda=false
10-30 05:19:12.953: E/Database(19566):
android.database.sqlite.SQLiteConstraintException: error code 19:
constraint failed
10-30 05:19:12.953: E/Database(19566):  at
android.database.sqlite.SQLiteStatement.native_execute(Native Method)
10-30 05:19:12.953: E/Database(19566):  at
android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
10-30 05:19:12.953: E/Database(19566):  at
android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1582)
10-30 05:19:12.953: E/Database(19566):  at
android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426)
10-30 05:19:12.953: E/Database(19566):  at
br.com.autosilent_v0.BDadapter.inserirAgenda(BDadapter.java:171)

--


--
 
 

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

0 comentários:

Postar um comentário