Tecnologia do Blogger.
RSS

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

O registro pai filho não está conseguindo encontrar o registro pai e
portanto está falhando a relação!

Abraço,

Ernani

2012/10/30 Jonas Alves <jonasfa@gmail.com>:
> 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