Ir para conteúdo

POWERED BY:

Arquivado

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

onedev

Erro ASP Microsoft Cursor Engine error '80040e38'

Recommended Posts

Olá Pessoal,

 

estou com esse erro a meses e não consigo uma solução. Quando tento atualizar o registro por um formulário HTML 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.
/pedidos_teste.asp, line 60 

O código do arquivo pedidos teste é o seguinte:

Set ObjRs_pedido = Server.CreateObject("ADODB.Recordset")
ObjRs_pedido.CursorLocation = 3
ObjRs_pedido.CursorType = 0
ObjRs_pedido.LockType = 3
Sql = "SELECT * FROM pedidos WHERE id = " & Request.Form("id")
ObjRs_pedido.Open Sql, Conexao
  ObjRs_pedido("servicos") = Request.Form("servicos")
  ObjRs_pedido("cliente") = Request.Form("cliente")
  ObjRs_pedido("contato") = Request.Form("contato")
  ObjRs_pedido("descricao") = Request.Form("descricao")
  ObjRs_pedido("status") = Request.Form("status")
  ObjRs_pedido("diarias") = Request.Form("diarias")
  ObjRs_pedido("data_evento_inicio") = Request.Form("data_evento_inicio")
  ObjRs_pedido("hora_inicio") = Request.Form("hora_inicio")
  ObjRs_pedido("carga_horaria") = Request.Form("carga_horaria")
  ObjRs_pedido("data_evento_termino") = Request.Form("data_evento_termino")
  ObjRs_pedido("hora_termino") = Request.Form("hora_termino")
  ObjRs_pedido("dias") = Request.Form("dias")
  ObjRs_pedido("local") = Request.Form("local")
  ObjRs_pedido("quantidade_dia") = Request.Form("quantidade_dia")
  ObjRs_pedido("validade") = Request.Form("validade")
ObjRs_pedido.Update
ObjRs_pedido.Close
Set ObjRs_pedido = Nothing
Set Sql = Nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL

Sql = "SELECT * FROM pedidos WHERE id = " & Request.Form("id")

response.write(SQL)

response.end()

para ver o k esta sendo passado nela

e seta o CursorType = 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

testei os valores que foram passadas e nao encontrei erro.

Tambem alterei o cursostype e nao funcionou.

 

Descobri que o problema está relacionado com o campo DATE da tabela do MYSQL. Se eu salvar o formulário sem alterar o campo da data ai acontece o erro, agora se eu salvar o formulário e alterar qualquer valor no campo da data ai o erro não aparece.

 

Quando eu faço um SELECT descricao,servicos,..... colocando todos os campos de menos o da data o erro não aparece tambem.

 

 

Muito estranho esse erro, to tentando resolver mas não encontro uma solução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma pesquisada no lab de script , k você pode formatar a data antes de inserir, resolve

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xanburzum,

 

cara eu to usando a função certinha pra enviar a data, ela funciona sem problemas.

O problema está quando eu salvo o formulário sem preencher a data ou sem fazer alguma alteracao no campo data quando já estiver preenchida.

 

você tem alguma dica pra resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se as colunas da tabela não estão como NOT NULL, como nosso grande amigo jonathandj, disse e poste o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jonatha,

 

Já testei Allow Null marcado e sem desmarcar.

Nenhum dos 2 não funciona.

 

Tá muito estranho. O esquema é o seguinte, eu gravo o registro no banco e insiro uma data, depois se eu acessar esse registro e salvar o formulário sem mudar nenhum campo, ai o erro aparece. Se a data não tiver nada marcado, depois tambem não consigo alterar.

 

O problema é apenas no campo DATE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu uso On Error Resume Next o erro não aparece..

 

mas isso não é ruim? a locaweb informou que isso sobrecarrega o servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

On Error Resume Next é para não aparece os erros mesmo

 

mas o correto é corrigi-los e não esconde-los

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.