Cole aqui a sua diretiva de criação das tabelas CLIENTE e CONSTRUTORA.
Fora isso, usar UPPER para números é completamente desnecessário (qual
a diferença entre 2 minúsculo e 2 maiúsculo? :) ).
Outra coisa que eu percebi é que você disse no email original que
simplificou a tabela. Então o problema pode ser em outra FK de outra
tabela. Mas, ainda assim, é numa FK com certeza.
-Bruno
2011/12/16 Júlio Cesar Bueno Cotta <juliocbcotta@gmail.com>:
> Ok Bruno.
> Copiei o arquivo de db a partir do emulador (adb pull
> /data/data/$PACKAGE/databases/MeuDb) e executei a consulta no Sqliteman.
> Mesmo resultado, a construtora existe.
> Aproveitei e conferi os dados do cliente..o cliente está com o email e id da
> construtora certos também.
> Quando executo manualmente
>
> UPDATE CLIENTE set FONE_CELULAR='1111111111' WHERE
> UPPER(EMAIL)=UPPER('julio@gmail.com') AND UPPER(ID_CONSTRUTORA)=UPPER('2');
>
> também dá certo.
>
> Em 16 de dezembro de 2011 13:00, Bruno Albuquerque
> <bruno.albuquerque@gmail.com> escreveu:
>
>> Cara, conecta no sqlite e rode queries manualmente. Por exemplo, no
>> seu codigo abaixo não dá pra ter a mínima idéia se o nome do campo de
>> id da tabela construtora está correto (tem que ser _id).
>>
>> -Bruno
>>
>> 2011/12/16 Júlio Cesar Bueno Cotta <juliocbcotta@gmail.com>:
>> > 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?
>> >
>> > Em 16 de dezembro de 2011 09:46, Bruno Albuquerque
>> > <bruno.albuquerque@gmail.com> escreveu:
>> >
>> >> 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
>> >> >
>> >
>> >
>> >
>> >
>> > --
>> > 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
>






0 comentários:
Postar um comentário