Bruno, durante a instalação eu estou inserindo vários campos de teste nas tabelas, entre eles estão as construtoras..sendo que eu especifico o id delas manualmente. Executei o select e me retornou os dados corretamente.
public static Construtora get(Long idConstrutora) {
idConstrutora = 2L;
//Cursor c = consultar(TABELA_CONSTRUTORA, COLUNA_ID_CONSTRUTORA, idConstrutora.toString());
Cursor c = mDb.query(true,TABELA_CONSTRUTORA, null,COLUNA_ID_CONSTRUTORA+"=" +String.valueOf(idConstrutora),null,null, null, null,null);
c.moveToFirst();
Construtora cons = deCursorParaConstrutora(c);
System.out.println("CONSTRUTORAAAAAAAAAAAAAAAAAAAAAAAAAA "+c.getCount()+" ID "+cons.getIdConstrutora());
c.close();
return cons;
}
12-16 12:06:54.542: I/System.out(459): CONSTRUTORAAAAAAAAAAAAAAAAAAAAAAAAAA 1 ID 2
Queria muito que esse fosse o problema, pois seria simples de resolver, mas pelo o que vi aqui, não é.
Mais alguma ideia Bruno?
Cara, mais uma vez. O problema *é* com a chave estrangeira. O Erro diz
exatamente isso. Rode esse query:
SELECT * FROM CONSTRUTORA WHERE _id = 2
Isso retorna algo?
-Bruno
2011/12/15 Júlio Cesar Bueno Cotta <juliocbcotta@gmail.com>:
> Pessoal..testei aqui...e nada mudou..
> Coloquei "no action" e tb tentei com "restrict" em todas as tabelas (tanto
> no on update quanto no on delete) para ver se funcionava..e nada.. continuou
> dando o mesmo erro..coloquei auto incremento em todas as tabelas de chave
> simples e tb não mudou nada..se tiverem mais alguma ideia..eu gostaria de
> ouvir (ler).. :-D
>
> E somente a titulo de curiosidade..quando desligo a verificação de chave
> extrangeira no SQLite..tudo funciona..aparentemente..
>
> Abraço.
>
> 2011/12/15 Júlio Cesar Bueno Cotta <juliocbcotta@gmail.com>
>>
>>
>>
>> Em 15 de dezembro de 2011 17:17, Diego Rocha <diego@diegosrocha.com.br>
>> escreveu:
>>
>>> Diego,
>>>
>>> Autoincrement você não coloca como null, pois como ele disse, no SQLite o
>>> "Integer Primary Key" vai funcionar como autoincrement. Quando ele não
>>> passar valor pro insert (ao invés de null vai usar o incremento) na chave.
>>>
>> Por definição, uma chave primaria não pode ser null..ela é o ponto de
>> referencia único (no sentido que identifica unicamente uma linha na tabela)
>> e por tanto qualquer coluna marcada como sendo primary key..nunca pode ser
>> marcada como "null". Tem haver com a integridade da tabela..
>>
>>> Você disse que o problema acontece só no update não é?
>>
>> Sim.
>>>
>>> Será que o problema não é por você estar usando cascade do update?
>>> Faz um teste com a tabela sem "on update cascade" e vê se funciona.
>>>
>> Vou testar hoje a noite e dou um feedback..estou usando on delete restrict
>> e on update cascade em todas as FK.. ao meu ver..isso não deveria ser um
>> problema..mas vai que é neh. :-D
>> Assim que testar aviso aqui..
>> Abraço e muito obrigado pelas dicas!
>>>
>>> Atenciosamente,
>>> Diego Rocha
>>
>>
>>
>>
>> --
>> Júlio Cesar Bueno Cotta
>> Bacharel em Ciência da Computação pela UFV
>> Mestrando em Ciência da Computação pela UFABC
>>
>
>
>
> --
> Júlio Cesar Bueno Cotta
> Bacharel em Ciência da Computação pela UFV
> Mestrando em Ciência da Computação pela UFABC
>
--
Bacharel em Ciência da Computação pela UFV
Mestrando em Ciência da Computação pela UFABC






0 comentários:
Postar um comentário