Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

onedev

Problema em sistema com gravação de valor em MySQL

Recommended Posts

Olá Pessoal,

 

estou fazendo uma manutenção em um sistema e ao tentar alterar um valor de um campo aparece o seguinte erro na tela:

 

Microsoft Cursor Engine error '80040e38' 
Row cannot be located for updating. Some values may have been changed since it was last read. 
produtos_alterar.asp, line 125 

Descobri que esse erro ocorre quando tento alterar um campo que fica gravado o valor. Esse campo é um FLOAT com length 10 e decimals 2.

Esse campo está sendo enviado ao banco pelo formulário como o seguinte valor 0,55.

O código ASP utilizado para gravar a informação é o seguinte:

 

Set ObjRs = Server.CreateObject("ADODB.Recordset")
Sql = "SELECT * FROM produtos WHERE id = " &Request.Form("id")
ObjRs.Open Sql, Conexao
  If Request.Form("peso") <> "" Then
    valor = Trim(Request.Form("peso"))
    valor = Replace(valor,".","")
    valor = Replace(valor,",",".")
    If FormatNumber(Replace(Replace(FormataValor(ObjRs("peso")),".",""),",",".")) <> FormatNumber(valor) Then
      ObjRs("peso") = valor
    End If
  End If
ObjRs.UpdateBatch
ObjRs.Close
Set ObjRs = Nothing

Antes de gravar o valor existe uma condição que faz o ajuste da virgula. Será que pode ser isso o erro?

Alguem tem alguma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vinicius,

 

como você gravar os valores de seus sistemas em campos FLOAT?

Será que você poderia colocar um codigo de exemplo...

Para ver como tratar o valor antes de gravar no banco.

 

Para campo float eu preciso enviar o valor com pontos apenas? sem virgula? tipo assim: 345.00 para R$345,00

Compartilhar este post


Link para o post
Compartilhar em outros sites

o mysql trata as casas decimais com ponto no formato americano: 1,234.56

eu deixo com virgulas no processo de cadastro, para facilitar o entendimento para o usuario, 1.234,56 mas ao inserir uso um replace e deixo no padrão do mysql :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.