Ir para conteúdo
Fórum Script Brasil
  • 0

Mensagem de erro ao salvar


nsouza

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0
Estou tentando salver os registros e retorna a mensagem 'Data truncated for collunm mat row1'.

Como posso resolver este problema?

se voce postar o código fica mais facil alguém te ajudar

abraço

Esta é a procedure que uso para alterar um registro

procedure TF_Condominio.alterar;

begin

with DM.CDs_Condominio do

begin

edtCodigo.Text := FieldByName('codCondominio').AsString ;

edtCondominio.Text := FieldByName('nome').AsString ;

edtEndereco.Text := FieldByName('endereco').AsString ;

edtNumero.Text := FieldByName('numero').AsString ;

edtComplemento.Text := FieldByName('complemento').AsString ;

edtBairro.Text := FieldByName('bairro').AsString ;

edtCidade.Text := FieldByName('cidade').AsString ;

cbEstado.Text := FieldByName('estado').AsString ;

mkeCep.Text := FieldByName('cep').AsString ;

mkeMandato.Text := FieldByName('mandato').AsString ;

edtEmail.Text := FieldByName('email').AsString ;

edtSindico.Text := FieldByName('sindico').AsString ;

mkeTelefone.Text := FieldByName('telefone').AsString ;

mkeCelular.Text := FieldByName('celular').AsString ;

edtQtde.Text := FieldByName('qtdeapt').AsString ;

edtAptinicial.Text := FieldByName('aptinicial').AsString ;

edtAptfinal.Text := FieldByName('aptfinal').AsString ;

mkeInicioCont.Text := FieldByName('iniciocontrato').AsString ;

mkeFimCont.Text := FieldByName('fimcontrato').AsString ;

edtValorCond.Text := FieldByName('vlrcondominio').AsString ;

//cbvencimento.Text := FieldByName('vencimento').AsString ;

end;

end;

No campo em negrito estou usando um EditNum, pois é um valor EX: 60,35 que sera digitado.

No banco de dados mysql 5.0 o campo esta como vlrcondominio (double(9,2).

Quando digito o valor e confirmo utilizando o código acima da a mensagem de erro:

Truncated incorret DOUBLE value 60,35.

Também direto do banco de dados, criei um campo tipo integer quer sera uma chave estrangeiro, quando vou marcar a opção

Not null e unsigned da a mesma mensagem. Esta campo ainda não fiz nada no formulário com ele.

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0
Not null e unsigned da a mesma mensagem. Esta campo ainda não fiz nada no formulário com ele.

Isso é normal

+----------+------------------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------+------------------------------+------+-----+---------+----------------+

| id | tinyint(3) unsigned zerofill | NO | PRI | NULL | auto_increment |

| name | varchar(15) | NO | | | |

| password | char(32) | NO | | | |

| fullname | varchar(50) | NO | | | |

+----------+------------------------------+------+-----+---------+----------------+

mensagem 'Data truncated for collunm mat row1'.

Truncated incorret DOUBLE value 60,35.

Dados truncados para a coluna Mat linha 1

Valor Double truncado incorreto 60,35

Pode ser bug do Mysql ou valor passado de forma incorreta

http://bugs.mysql.com/bug.php?id=21475

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Not null e unsigned da a mesma mensagem. Esta campo ainda não fiz nada no formulário com ele.

Isso é normal

+----------+------------------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------+------------------------------+------+-----+---------+----------------+

| id | tinyint(3) unsigned zerofill | NO | PRI | NULL | auto_increment |

| name | varchar(15) | NO | | | |

| password | char(32) | NO | | | |

| fullname | varchar(50) | NO | | | |

+----------+------------------------------+------+-----+---------+----------------+

mensagem 'Data truncated for collunm mat row1'.

Truncated incorret DOUBLE value 60,35.

Dados truncados para a coluna Mat linha 1

Valor Double truncado incorreto 60,35

Pode ser bug do Mysql ou valor passado de forma incorreta

http://bugs.mysql.com/bug.php?id=21475

abraço

Caro Jhonas,

obrigado pelo retorno, mas tenho dificuldade com o Inglês, como poderia resolver esse problema?

Link para o comentário
Compartilhar em outros sites

  • 0

nsouza

Estou com um pouco de dificuldade em entender o seu problema. Talvez se você explicar um pouco melhor, possamos te ajudar de maneira eficiente.

Agora, aqui vai algumas perguntas.

1) Notei que sua procedure Alterar está pegando os dados do seu TDataSet. É nesse momento que aparece o erro? Quando você está puxando os dados para os edits? Ou é em outro momento, quando você transfere os dados alterados para o TDataSet e tenta gravar? Se for o segundo caso, poste o seu procedimento para salvar as alterações.

2) Qual é banco de dados que você está utilizando? Quais são os campos em questão que estão dando problema e quais os tipos e restrições atribuídos a eles? Você consegue inserir normalmente o valor "60,35" diretamente no banco? Talvez seja algum problema na definição do campo.

3) Quando você debuga a aplicação onde exatamente aparece o erro? Em que momento da aplicação? Lembre-se quanto melhor você explicar como funciona, será mais fácil para tentarmos te ajudar.

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0
nsouza

Estou com um pouco de dificuldade em entender o seu problema. Talvez se você explicar um pouco melhor, possamos te ajudar de maneira eficiente.

Agora, aqui vai algumas perguntas.

1) Notei que sua procedure Alterar está pegando os dados do seu TDataSet. É nesse momento que aparece o erro? Quando você está puxando os dados para os edits? Ou é em outro momento, quando você transfere os dados alterados para o TDataSet e tenta gravar? Se for o segundo caso, poste o seu procedimento para salvar as alterações.

2) Qual é banco de dados que você está utilizando? Quais são os campos em questão que estão dando problema e quais os tipos e restrições atribuídos a eles? Você consegue inserir normalmente o valor "60,35" diretamente no banco? Talvez seja algum problema na definição do campo.

3) Quando você debuga a aplicação onde exatamente aparece o erro? Em que momento da aplicação? Lembre-se quanto melhor você explicar como funciona, será mais fácil para tentarmos te ajudar.

Abraço

Este é o meu procedimento para gravar no banco de dados.

with DM.CDs_Condominio do

begin

FieldByName('nome').AsString := edtCondominio.Text;

FieldByName('endereco').AsString := edtEndereco.Text;

FieldByName('numero').AsString := edtNumero.Text;

FieldByName('complemento').AsString := edtComplemento.Text;

FieldByName('bairro').AsString := edtBairro.Text;

FieldByName('cidade').AsString := edtCidade.Text;

FieldByName('estado').AsString := cbEstado.Text;

FieldByName('cep').AsString := mkeCep.Text;

if mkeMandato.Text <> (' / / ') then

FieldByName('mandato').AsString := mkeMandato.Text;

FieldByName('email').AsString := edtEmail.Text;

FieldByName('sindico').AsString := edtSindico.Text;

FieldByName('telefone').AsString := mkeTelefone.Text;

FieldByName('celular').AsString := mkeCelular.Text;

FieldByName('qtdeapt').AsString := edtQtde.Text;

FieldByName('aptinicial').AsString := edtAptinicial.Text;

FieldByName('aptfinal').AsString := edtAptfinal.Text;

if mkeInicioCont.Text <> (' / / ') then

FieldByName('iniciocontrato').AsString := mkeInicioCont.Text;

if mkeFimCont.Text <> (' / / ') then

FieldByName('fimcontrato').AsString := mkeFimCont.Text;

FieldByName('vlrcondominio').asstring:= edtValorCond.Text;

end;

Respondendo a suas perguntas:

1) Notei que sua procedure Alterar está pegando os dados do seu TDataSet.

É nesse momento que aparece o erro?

R: O erro aparece quando clico no botão confirmar ativando a procedure gravar.

Quando você está puxando os dados para os edits? Ou é em outro momento, quando você transfere os dados alterados para o TDataSet e tenta gravar?

R: É neste ponto que aparece o problema.

2) Qual é banco de dados que você está utilizando?

R: Estou utilizando o mysql v. 5.0.77

Quais são os campos em questão que estão dando problema e quais os tipos e restrições atribuídos a eles?

R: Esta dando problema no campo vlrCondominio. E um campo que usei o componente EditNum.

Você consegue inserir normalmente o valor "60,35" diretamente no banco? Talvez seja algum problema na definição do campo.

R: No banco de dados consigo inserir normamente, o problema é quendo mando do delphi para o banco. O campo é do tipo Double(9,2)

3) Quando você debuga a aplicação onde exatamente aparece o erro? Em que momento da aplicação?

Como sou iniciate e estou fazendo o curso a distância e desenvolvento um sistema em paralelo ao que aprendo no curso para aplicar meus conhecimentos, ainda não cheguei na parte que ensina a debugar. E como disse só ocorre ao gravar

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...