Ir para conteúdo

POWERED BY:

Arquivado

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

Slaa

Erro para UPDATE

Recommended Posts

Senhores, ce estou eu de novo...Vejam o erro:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. /clientes/registrardados.asp, line 52

Estou tentando fazer um UPDATE nos dados do cliente. Eis o código que gerou o erro:
<%Dim strSQL				Dim objConn				Dim objRs				Dim lngMemberIDDim strloginnameDim strloginpasswordDim stremailsecDim strenderecoDim strestadoDim strcidadeDim strcepDim strtelefoneDim strcelular' Open DatabaseSet objConn = Server.CreateObject("ADODB.Connection")Set objRs = Server.CreateObject("ADODB.Recordset")objConn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("001.mdb") ' Segurançaresponse.expires = "0"if session("logado") <> "logou" thenresponse.redirect ("http://www.hv.com/clientes/home.asp")session("erro") = ("Erro")end if' fim Segurançastrloginname = request.form("loginname")strloginpassword = request.form("loginpassword") stremailsec = request.form("emailsec") strendereco = request.form("endereco") strestado = request.form("estado") strcidade = request.form("cidade") strcep = request.form("cep") strtelefone = request.form("telefone") strcelular = request.form("celular")lngmemberid = session("memberID") ' Set the SQL Statement to get the information from the databasestrSQL = "UPDATE Members SET LoginName='"& strLoginName & "', loginpassword= '" & strLoginPassword & "', emailsec= '" & stremailsec & "', endereco = '" & strendereco & "', cidade = '" & strcidade & "', estado = '" & strestado & "', cep = '" & strcep & "', telefone = '" & strtelefone & "', celular = '" & strcelular & "' WHERE memberID ='" & lngmemberID & "'"' Open the DatabaseobjRS.Open strSQL, objConn 'linha 52if objRS.EOF = true thenresponse.redirect ("http://www.hv.com/")elseresponse.Redirect("http://www.hv.com/clientes/central.asp")end if%>
Alguem pode me ajudar? Acho que o erro esta na strSQL... acho que no Update fiz algo errado, mas naum achei nada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem voce deve observar o tipo de dados de cada campo em seu DB pois voce ta tratando algum campo de forma erradase for texto tem que ter aspas simplesnumero sem aspas simples

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se os campos "cep" e "memberID" são tipo texto, pq você esta inserindo como texto.

O erro agora eh

ADODB.Recordset error '800a0e78' Operation is not allowed when the object is closed. /clientes/registrardados.asp, line 53

Naum estou entendendo, eis o codigo:
<%Dim strSQL				Dim objConn				Dim objRs				Dim lngMemberIDDim strloginnameDim strloginpasswordDim stremailsecDim strenderecoDim strestadoDim strcidadeDim strcepDim strtelefoneDim strcelular' Open DatabaseSet objConn = Server.CreateObject("ADODB.Connection")Set objRs = Server.CreateObject("ADODB.Recordset")objConn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("001.mdb") ' Segurançaresponse.expires = "0"if session("logado") <> "logou" thenresponse.redirect ("http://www.hv.com/clientes/home.asp")session("erro") = ("Erro")end if' fim Segurançastrloginname = request.form("loginname")strloginpassword = request.form("loginpassword") stremailsec = request.form("emailsec") strendereco = request.form("endereco") strestado = request.form("estado") strcidade = request.form("cidade") strcep = request.form("cep") strtelefone = request.form("telefone") strcelular = request.form("celular")lngmemberid = session("memberID") strnome = session("nome") ' Set the SQL Statement to get the information from the databasestrSQL = "UPDATE Members SET LoginName='"& strLoginName & "', loginpassword= '" & strLoginPassword & "', emailsec= '" & stremailsec & "', endereco = '" & strendereco & "', cidade = '" & strcidade & "', estado = '" & strestado & "', cep = '" & strcep & "', telefone = '" & strtelefone & "', celular = '" & strcelular & "' WHERE nome ='" & strnome & "'"' Open the DatabaseobjRS.Open strSQL, objConn if objRS.EOF = true then			'LINHA 53response.redirect ("http://www.hv.com/")elseresponse.Redirect("http://www.hv.com/clientes/central.asp")end if%>
Pq o aruivo esta abrto. (objRS.Open strSQL, objConn )

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que quando é feito um UPDATE ou um INSERT ele fecha automaticamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce atualiza aquiobjRS.Open strSQL, objConn e depois desta linha o RS ta fechado

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce atualiza aquiobjRS.Open strSQL, objConn e depois desta linha o RS ta fechado

Puxa,, desculpe, mas eu naum estou entendendo nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

naquela linha voce executa o UPDATE certo???toda vez que se executa um INSERT ou um UPDATE usando um recordset este se fecha automaticamente...na verdade nem precisa de recordset para UPDATE ou INSERT mas muitos usam e usou fechou não tem como voce testar depois

objRS.Open strSQL, objConn if objRS.EOF = true then

na linha de cima voce atualiza e o RS fechana linah de baixo não pode fazer isso pois ja ta fechado

Compartilhar este post


Link para o post
Compartilhar em outros sites

naquela linha voce executa o UPDATE certo???toda vez que se executa um INSERT ou um UPDATE usando um recordset este se fecha automaticamente...na verdade nem precisa de recordset para UPDATE ou INSERT mas muitos usam e usou fechou não tem como voce testar depois

objRS.Open strSQL, objConn if objRS.EOF = true then

na linha de cima voce atualiza e o RS fechana linah de baixo não pode fazer isso pois ja ta fechado
Tah acho que entendi. Isso significa que eu teria ou que retirar o objRS (o recordset) ou colocalo antes do

objRS.Open strSQL, objConn

Assim:
' Set the SQL Statement to get the information from the databasestrSQL = "UPDATE Members SET LoginName='"& strLoginName & "', loginpassword= '" & strLoginPassword & "', emailsec= '" & stremailsec & "', endereco = '" & strendereco & "', cidade = '" & strcidade & "', estado = '" & strestado & "', cep = '" & strcep & "', telefone = '" & strtelefone & "', celular = '" & strcelular & "' WHERE nome ='" & strnome & "'"if objRS.EOF = true thenresponse.redirect ("http://www.hv.com/")elseresponse.Redirect("http://www.hv.com/clientes/dadospessoais.asp")end if' Open the DatabaseobjRS.Open strSQL, objConn%>
Bom continua com o mesmo problema.Ai mudei para:
' <%Dim strSQL				Dim objConn				Dim objRs				Dim lngMemberIDDim strloginnameDim strloginpasswordDim stremailsecDim strenderecoDim strestadoDim strcidadeDim strcepDim strtelefoneDim strcelular' Open DatabaseSet objConn = Server.CreateObject("ADODB.Connection")objConn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("001.mdb") ' Segurançaresponse.expires = "0"if session("logado") <> "logou" thenresponse.redirect ("http://www.hv.com/clientes/home.asp")session("erro") = ("Erro")end if' fim Segurançastrloginname = request.form("loginname")strloginpassword = request.form("loginpassword") stremailsec = request.form("emailsec") strendereco = request.form("endereco") strestado = request.form("estado") strcidade = request.form("cidade") strcep = request.form("cep") strtelefone = request.form("telefone") strcelular = request.form("celular")lngmemberid = session("memberID") strnome = session("nome") ' Set the SQL Statement to get the information from the databasestrSQL = "UPDATE Members SET LoginName='"& strLoginName & "', loginpassword= '" & strLoginPassword & "', emailsec= '" & stremailsec & "', endereco = '" & strendereco & "', cidade = '" & strcidade & "', estado = '" & strestado & "', cep = '" & strcep & "', telefone = '" & strtelefone & "', celular = '" & strcelular & "' WHERE nome ='" & strnome & "'"' Open the Database%>
Naum q naum funcione... soh que agora soh aparece uma pagina em branco, e os registros naum saum atualizados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem isto significa que voce não pode ter este IFif objRS.EOF = true thenresponse.redirect ("http://www.hv.com/")elseresponse.Redirect("http://www.hv.com/clientes/dadospessoais.asp")end ifpoe somente para onde deve ser rediecionado tiporesponse.Redirect("http://www.hv.com/clientes/dadospessoais.asp")só issoe quanto ao fato de não atualizar tem algo errado entãoaquiWHERE nome ='" & strnome & "'"este strnome existe no DB???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, esta... Estranho né? Tem que ter algum erro sem duvida.Bom, vo sair de ferias logo mais. Vcs vaum sair quando de ferias?

Compartilhar este post


Link para o post
Compartilhar em outros sites

as minhas são em julho apenas

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.