Ir para conteúdo

POWERED BY:

Arquivado

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

onedev

Problemas com erro para salvar um formulário sem trocar nenhum dado

Recommended Posts

Olá,

 

um erro meio inusitado. Quando mando salvar um formulário sem que tenha trocado qualquer informação dos campos ocorre o seguinte erro:

 

Microsoft Cursor Engine error '80040e38'

Row cannot be located for updating. Some values may have been changed since it was last read.

/form_alterar.asp, line 66

onde a linha 66 é a seguinte:

objRS.UpdateBatch

 

utilizo o seguinte código do form

If Request.Form <> "" Then
  Set objRS = Server.CreateObject("ADODB.Recordset")
  objRS.CursorLocation = 3
  objRS.CursorType = 0
  objRS.LockType = 3
  Sql = "SELECT * FROM clientes WHERE id = " &Request.Form("id")
  objRS.Open Sql, Conexao
	If Request.Form("cliente_tipo") <> "" Then objRS("cliente_tipo") = trim(Request.Form("cliente_tipo"))
	If Request.Form("cliente_nome") <> "" Then objRS("cliente_nome") = trim(Request.Form("cliente_nome"))
	If Request.Form("cliente_pessoa") <> "" Then objRS("cliente_pessoa") = trim(Request.Form("cliente_pessoa"))
  objRS.UpdateBatch
  objRS.Close
  Set objRS = Nothing
End If

alguém pode dar uma ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

muda CursorType para 1, e da um response.write na sua string SQL para ver o k esta sendo passado...

mas para ter o Update, você precisa no minimo passar as mesmas info, caso nao altere

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei o Cursortype para 1 e o erro permanece.

Verifiquei que a string SQL esta passando os valores corretamentes.

 

Não consigo compreender esse erro pois uso esse mesmo código em outros formulários.

Alguém já passou por isso sabe como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal,

 

estou utilizando objRS.UpdateBatch. Eu descobri que se eu utilizar o On Error Resume Next o formulário não mostra o erro na tela. Porém isso é ruim pois sobrecarrega o servidor.

 

Qual a solução para criar um formulário que se o usuario clicar em salvar mesmo sem mudar nenhum campo não ocorra nenhum erro na tela? Qual o código vocês usam em seus sistemas para dar update sem erro?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

conn.execute("UPDATE tabela SET campo1 = '"&var_valor1&"', campo2 = '"&var_valor2&"' WHERE codigo = '"&var_codigo&"'")

Response.Write("Atualizado com Sucesso")

conn.close()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Ted K,

 

o problema desse codigo é quando tenho um formulário com uns 50 campos. Digitar um por uma dá um trabalho gigantesco.

Existe alguma dica para agilizar esse processo?

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.