nsouza Postado Agosto 8, 2009 Denunciar Share Postado Agosto 8, 2009 (editado) Colegas, tenho dois camposStatus (integer(11)vrlCondominio(double(9,2)Estou tentando salver os registros e retorna a mensagem 'Data truncated for collunm mat row1'.Como posso resolver este problema?obrigado Editado Agosto 8, 2009 por nsouza Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 8, 2009 Denunciar Share Postado Agosto 8, 2009 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 ajudarabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nsouza Postado Agosto 8, 2009 Autor Denunciar Share Postado Agosto 8, 2009 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 ajudarabraçoEsta é a procedure que uso para alterar um registroprocedure 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çãoNot null e unsigned da a mesma mensagem. Esta campo ainda não fiz nada no formulário com ele.Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 9, 2009 Denunciar Share Postado Agosto 9, 2009 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 1Valor Double truncado incorreto 60,35Pode ser bug do Mysql ou valor passado de forma incorretahttp://bugs.mysql.com/bug.php?id=21475abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nsouza Postado Agosto 9, 2009 Autor Denunciar Share Postado Agosto 9, 2009 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 1Valor Double truncado incorreto 60,35Pode ser bug do Mysql ou valor passado de forma incorretahttp://bugs.mysql.com/bug.php?id=21475abraçoCaro Jhonas,obrigado pelo retorno, mas tenho dificuldade com o Inglês, como poderia resolver esse problema? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RafaelemeNt Postado Agosto 9, 2009 Denunciar Share Postado Agosto 9, 2009 nsouzaEstou 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nsouza Postado Agosto 10, 2009 Autor Denunciar Share Postado Agosto 10, 2009 nsouzaEstou 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çoEste é 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.77Quais 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
nsouza
Colegas, tenho dois campos
Status (integer(11)
vrlCondominio(double(9,2)
Estou tentando salver os registros e retorna a mensagem 'Data truncated for collunm mat row1'.
Como posso resolver este problema?
obrigado
Editado por nsouzaLink para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
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.