Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Re: Erro ao atualizar dados

Putzzzzz.


Você matou o problema cara. Valeu mesmo irmão.
Que mole que dei.

Já estou a mais de trinta horas programando. Fazendo correção dos outros e dei mole logo nisso.

Amigo, só me restou um problema.

Este problema é com relação os campos do tipo Spinner.

Exemplo do problema:

Se meu meu formulário conter 5 campos (3 do tipo editText e dois do tipo Spinner).
Na hora de fazer o upload e grava certinho os do tipo Spinner, mas os não os dados do tipo editText.

Ele grava este número -9223372036854775808 em todos os registros destes campos editText.

String idIpinners = String.valueOf(escolha[j].getSelectedItemId());
                                                       
                            infoAmostra.setVlInfo(editText[j].getEditableText().toString());
infoAmostra.setVlInfo(idIpinners);
infoAmostra.setFlObrigatorio("S");
String idInfo = String.valueOf(recuperaIdInfo);
                                if (coletaDao.updateColeta(infoAmostra, idAmostra, idInfo)) {
                                Toast.makeText(TesteCadastroColeta_2.this, "OK", Toast.LENGTH_SHORT).show();
                               
                               
    } else {
   
    Toast.makeText(TesteCadastroColeta_2.this, "ERRO METODO UPDATE", Toast.LENGTH_SHORT).show();
    



Você consegue me dar uma força nisto também?

Desde já te agradeço mais uma vez cara.



Em 5 de janeiro de 2012 14:54, Victor Fugiwara <victorfugiwara@gmail.com> escreveu:
Então Fabiano, cada campo do formulário será uma linha da tabela INFOSAMOSTRA
Cada iteração do seu for, se refere a um dos campos.
Vi que está fazendo um update nos dados, então suponho que eles são criados previamente e apenas preenchidos aí.
Qual campo da tabela INFOSAMOSTRA identifica o campo (da iteração)?

Pq vc está dando um update passando os valores de VLINFO e FLOBRIGATORIO e nesse update a condição é do campo CDAMOSTRA que é o idAmostra da sua classe. Porém todos os updates são feitos só com essa condição... não deveria ter mais uma condição no update? sendo essa referente ao campo da iteração (acredito que o CDINFO) ?



2012/1/5 Fabiano Bento de Almeida <fabianobalmeida@gmail.com>
A tabela INFOSAMOSTRA eu tenho, ela é resultado de um  (N: N)

Eu preciso atualizar os dados coluna VLINFO e FLOBRIGATORIO.

O FLOBRIGATORIO não é problema já que o valor inicial é N e automaticamente passará para S.

Os campos do formulário servem para atualizar todos os dados da coluna VLINFO que contenham  a FK CDAMOSTRA. 

Cada campo do formulário se refere a uma linha do registro.

Deu para entender melhor?


Segue a estrutura

CREATE TABLE AMOSTRA(
CDAMOSTRA INTEGER NOT NULL,  
IDAMOSTRA VARCHAR(250), 
IDPROCESSO VARCHAR(250), 
IDAUXPROCESSO INTEGER, 
DTPREVISTA DATETIME, 
DTCOLETA DATETIME, 
FLCOLETADA CHAR(1) NOT NULL, 
DTDOWNLOAD DATETIME, 
DTUPLOAD DATETIME, 
ENDERECOCOLETA VARCHAR(250), 
OBSERVACAO VARCHAR(250),
CDUSUARIO INTEGER NOT NULL,
IDAUXCOLETA INTEGER,
IDAUXEMPRESA INTEGER NOT NULL,  
CONSTRAINT [PK_AMOSTRA] PRIMARY KEY (CDAMOSTRA),
FOREIGN KEY (CDUSUARIO) REFERENCES USUARIO(CDUSUARIO) ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (IDAUXCOLETA) REFERENCES COLETA(IDAUXCOLETA) ON UPDATE CASCADE,
FOREIGN KEY (IDAUXEMPRESA) REFERENCES EMPRESA(IDAUXEMPRESA) ON UPDATE CASCADE);


CREATE TABLE android_metadata (locale TEXT);


CREATE TABLE GRPINFO(
CDGRPINFO INTEGER NOT NULL,  
NMGRPINFO VARCHAR(250), 
CONSTRAINT [PK_GRPINFO] PRIMARY KEY (CDGRPINFO));


CREATE TABLE INFO(
CDINFO INTEGER NOT NULL,  
NMINFO VARCHAR(250) NOT NULL,
CDTIPODADO INTTEGER NOT NULL, 
CONSTRAINT [PK_INFO] PRIMARY KEY (CDINFO));


CREATE TABLE INFOSAMOSTRA(
CDAMOSTRA INTEGER NOT NULL,
CDINFO INTEGER NOT NULL,  
CDGRPINFO INTEGER NOT NULL,
VLINFO VARCHAR(250),
FLOBRIGATORIO CHAR(1) NOT NULL,
FOREIGN KEY (CDINFO) REFERENCES INFO(CDINFO) ON UPDATE CASCADE ON DELETE CASCADE, 
FOREIGN KEY (CDGRPINFO) REFERENCES GRPINFO(CDGRPINFO) ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (CDAMOSTRA) REFERENCES AMOSTRA(CDAMOSTRA) ON UPDATE CASCADE ON DELETE CASCADE);

Em 5 de janeiro de 2012 14:22, Victor Fugiwara <victorfugiwara@gmail.com> escreveu:

pelo que entendi, vc deve ter a tabela INFOSAMOSTRA que grava a identificação do campo, se é obrigatório e o valor digitado.
seria isso?
se sim, o idAmostra não deveria ser diferente para cada um dos campos da iteração?

2012/1/5 Fabiano - Carioca <fabianobalmeida@gmail.com>
Só uma observação.

Quando mando imprimir os resultados no logCat ele imprime certinho.

On 5 jan, 13:21, Fabiano Bento de Almeida <fabianobalme...@gmail.com>
wrote:
> O cara obrigadão pela força.
>
> Não gera mensagem de erro.
>
> Os campos deste formulário vão ser inseridos na mesma coluna da minha
> tabela no banco de dados.
>
> O problema é o seguinte.
>
> Quando chamo o método para atualizar ele só atualiza as linhas do banco com
> dados do último campo.
>
> Entendeu?
>
> Att
>
> Em 5 de janeiro de 2012 12:59, Edney Imme <edney.i...@gmail.com> escreveu:
>
>
>
>
>
>
>
> > Qual a mensagem de erro?
> > Manda os dados que estao no logcat
>
> > Att.
> > Edney Marcel Imme
>
> > 2012/1/5 Fabiano - Carioca <fabianobalme...@gmail.com>
>
> >> O pessoal,
>
> >> Não como me ajudar nesta?
>
> >> Att.
>
> >> On 5 jan, 10:56, Fabiano - Carioca <fabianobalme...@gmail.com> wrote:
> >> > Bom dia pessoal,
>
> >> > Alguém pode me dar uma força neste tópico aqui.
>
> >> >http://www.guj.com.br/java/262185-erro-ao-atualizar-dados
>
> >> > Estou quebrando a cabeça, mas o cansaço bateu e não estou conseguindo
> >> > resolver.
>
> >> > Quem puder me ajudar eu agradeço muito.
>
> >> > Trinta horas programando direto é dureza.
>
> >> > Grande abraço a todos.




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

0 comentários:

Postar um comentário