Jump to content


Photo

Atualizando Dados Alterados


  • Faça o login para participar
30 replies to this topic

#1 luckynho

luckynho

    12 Horas

  • Usuários
  • 120 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 20/01/2005, 15:46

Não está atualizando os dados da minha tabela...
e tbm nao reporta nenhum tipo de erro
o que será? alguem me ajude ?

<%
  Response.Expires = 0
  if len(session("adm.codigo")) = 0 then Response.Redirect "../"
function gravaTXT(x)
  if len(x) = 0 then
    gravaTXT = "null"
  else
    gravaTXT = "'" & Replace(Replace(x,vbCrLf,"<br>"),"'","''") &"'"
  end if
end function  
  dim objto, objto1
  Set objto = Server.CreateObject("ADODB.Connection")
    objto.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("../../bd/bd.mdb") &";"     
  dim codigo, titulo, olho, descricao, autor, descricao_autor, fonte
	codigo = gravaTXT(Request.Form("codigo"))
	titulo = gravaTXT(Request.Form("titulo"))
	olho = gravaTXT(Request.Form("olho"))
	descricao = gravaTXT(Request.Form("descricao"))
	autor = gravaTXT(Request.Form("autor"))
	descricao_autor = gravaTXT(Request.Form("descricao_autor"))
	fonte = gravaTXT(Request.Form("fonte"))
  cmdinsere = "update bibli_artigo set titulo="& titulo &", olho="& olho &", descricao="& descricao &", autor="& autor &", descricao_autor="& descricao_autor &", fonte="& fonte &" where codigo=" & codigo 
  'Response.Write cmdinsere
  'Response.end
  objto.Execute(cmdinsere)
%>
<script LANGUAGE=javascript>
  alert('Alteração efetuada com sucesso!');
  location.href = "pesart.asp";
</SCRIPT>


#2 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 20/01/2005, 15:49

Remova esta parte do seu script ou deixe-a como comentário e avalie se realmente aparece algum erro ou não.

Parte a ser removida do código:
...
<script LANGUAGE=javascript>
 alert('Alteração efetuada com sucesso!');
 location.href = "pesart.asp";
</SCRIPT>

Lembre-se de que todo e qualquer informação do banco de dados que for do tipo STRING (texto) deve estar entre aspas simples, exemplo:

...
cmdinsere = "update bibli_artigo set titulo='"& titulo &"', olho='"& olho &"',... where codigo=" & codigo 
...

------
Mero mortal!

#3 luckynho

luckynho

    12 Horas

  • Usuários
  • 120 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 20/01/2005, 17:52

veja como está a minha programacao:

Todos os campos são memorando, os unicos que são texto são:
Autor e Fonte

  cmdinsere = "update bibli_artigo set titulo="& titulo &", olho="& olho &", descricao="& descricao &", autor='"& autor &"', descricao_autor="& descricao_autor &", fonte='"& fonte &"' where codigo=" & codigo


#4 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 20/01/2005, 18:03

Seu comando UPDATE vai gerar um erro, já comentei isto num post anterior.

Quando me refiro a campo STRING (texto), isto quer dizer qualquer tipo de informação diferente de tipo numérico e data.

Obs.:
Não é interessante trabalhar com campos do tipo memorando, a não ser quando extremamente necessário.
------
Mero mortal!

#5 luckynho

luckynho

    12 Horas

  • Usuários
  • 120 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 20/01/2005, 18:10

Mudei todos os campos da minha tabela para texto... e limitei ao maximo, só deixei memorando para descricao... que é necessário.

O erro prevalece... onde estou errando ?


Tipo de dados imcompatível na expressão de critério

Edição feita por: luckynho, 20/01/2005, 18:11.


#6 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 20/01/2005, 18:12

Código para o seu UPDATE:

cmdinsere = "update bibli_artigo set titulo='"& titulo &"', olho='"& olho &"', descricao='"& descricao &"', autor='"& autor &"', descricao_autor='"& descricao_autor &"', fonte='"& fonte &"' where codigo=" & codigo

Deve funcionar.
------
Mero mortal!

#7 luckynho

luckynho

    12 Horas

  • Usuários
  • 120 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 20/01/2005, 19:04

Seguinte.... eu fiz um script pra saber onde está dando o erro.....

veja:

------- Request.Form --------

titulo=ah
Submit2=Alterar Notícia
olho=a
descricao=a
descricao_autor=a
autor=a
fonte=a

------- Request.Querystring --------
update bibli_artigo set titulo=''ah'', olho=''a'', descricao=''a'', autor=''a'', descricao_autor=''a'', fonte=''a'' where codigo=null




Ou seja.. pelo que eu entendi... ele está fazendo o UPDATE de tudu... porem ele não consegue entender qual o codigo.... está NULL

o que faco ?

#8 felipecm

felipecm

    Expert

  • Usuários
  • 541 posts
  • Sexo:Não informado
  • Localidade:ABC / SP

Posted 20/01/2005, 19:17

Seguinte.... eu fiz um script pra saber onde está dando o erro.....

veja:

------- Request.Form --------

titulo=ah
Submit2=Alterar Notícia
olho=a
descricao=a
descricao_autor=a
autor=a
fonte=a

------- Request.Querystring --------
update bibli_artigo set titulo=''ah'', olho=''a'', descricao=''a'', autor=''a'', descricao_autor=''a'', fonte=''a'' where codigo=null




Ou seja.. pelo que eu entendi... ele está fazendo o UPDATE de tudu... porem ele não consegue entender qual o codigo.... está NULL

o que faco ?

Se vc quer fazer um UPDATE para afetar todos os registros, simplesmente iniba a Clausula WHERE. (UPDATE Tabela SET valor = 1)

Agora se não for isso, verifica se tua variavel "codigo" tá recebendo valor da QueryString, pois esse é um erro muito comum. (y)
MCAD, MCP

#9 luckynho

luckynho

    12 Horas

  • Usuários
  • 120 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 21/01/2005, 13:29

Bom....

=(... to me sentindo até um retardado em ficar pedindo ajuda aqui... estou aprendendo ainda.... por favor tenham paciencia...rs

olha...
cmdinsere = "update bibli_artigo set titulo="& titulo &", olho="& olho &", descricao="& descricao &", autor="& autor &", descricao_autor="& descricao_autor &", fonte="& fonte &"

cmdinsere = "update bibli_artigo set titulo='"& titulo &"', olho='"& olho &"', descricao='"& descricao &"', autor='"& autor &"', descricao_autor='"& descricao_autor &"', fonte='"& fonte &"', where codigo=" & codigo

eu Já fiz as duas formas.... ja tirei o "where" e ainda nao rola.... nao está atualizando.....

Segue o codigo de como está o codigo agora

<%
function debugVars()
 debugVars = "------- Request.Form --------<br>"
 for each i in request.Form
  debugVars = debugVars & "<li>" & i & "=" & request.form(i)
 next 
 debugVars = debugVars & "<br><br>------- Request.Querystring --------<br>"
 for each i in request.Querystring
  debugVars = debugVars & "<li>" & i & "=" & request.querystring(i)
 next 
end function
 
response.write debugVars
 
%>
<%
  Response.Expires = 0
  if len(session("adm.codigo")) = 0 then Response.Redirect "../"
function gravaTXT(x)
  if len(x) = 0 then
    gravaTXT = "null"
  else
    gravaTXT = "'" & Replace(Replace(x,vbCrLf,"<br>"),"'","''") &"'"
  end if
end function  
  dim objto, objto1
  Set objto = Server.CreateObject("ADODB.Connection")
    objto.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("../../bd/bd.mdb") &";"     
  dim codigo, titulo, olho, descricao, autor, descricao_autor, fonte
	codigo = gravaTXT(Request.form("codigo"))
	titulo = gravaTXT(Request.Form("titulo"))
	olho = gravaTXT(Request.Form("olho"))
	descricao = gravaTXT(Request.Form("descricao"))
	autor = gravaTXT(Request.Form("autor"))
	descricao_autor = gravaTXT(Request.Form("descricao_autor"))
	fonte = gravaTXT(Request.Form("fonte"))
cmdinsere = "update bibli_artigo set titulo='"& titulo &"', olho='"& olho &"', descricao='"& descricao &"', autor='"& autor &"', descricao_autor='"& descricao_autor &"', fonte='"& fonte &"', where codigo=" & codigo
'  response.Write cmdinsere
 ' response.end
  objto.Execute (cmdinsere)
%>
<script LANGUAGE=javascript>
  alert('Alteração efetuada!');
  location.href = "altnot.asp?not_cod=<%= not_cod%>";
</SCRIPT>

abracos...

#10 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 21/01/2005, 13:34

Remova a parte final do seu script para que possamos avaliar o problema real.

Deixe seu script assim:

<%
function debugVars()
debugVars = "------- Request.Form --------<br>"
for each i in request.Form
 debugVars = debugVars & "<li>" & i & "=" & request.form(i)
next
debugVars = debugVars & "<br><br>------- Request.Querystring --------<br>"
for each i in request.Querystring
 debugVars = debugVars & "<li>" & i & "=" & request.querystring(i)
next
end function

response.write debugVars

%>
<%
 Response.Expires = 0
 if len(session("adm.codigo")) = 0 then Response.Redirect "../"
function gravaTXT(x)
 if len(x) = 0 then
   gravaTXT = "null"
 else
   gravaTXT = "'" & Replace(Replace(x,vbCrLf,"<br>"),"'","''") &"'"
 end if
end function  
 dim objto, objto1
 Set objto = Server.CreateObject("ADODB.Connection")
   objto.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("../../bd/bd.mdb") &";"    
 dim codigo, titulo, olho, descricao, autor, descricao_autor, fonte
codigo = gravaTXT(Request.form("codigo"))
titulo = gravaTXT(Request.Form("titulo"))
olho = gravaTXT(Request.Form("olho"))
descricao = gravaTXT(Request.Form("descricao"))
autor = gravaTXT(Request.Form("autor"))
descricao_autor = gravaTXT(Request.Form("descricao_autor"))
fonte = gravaTXT(Request.Form("fonte"))
cmdinsere = "update bibli_artigo set titulo='"& titulo &"', olho='"& olho &"', descricao='"& descricao &"', autor='"& autor &"', descricao_autor='"& descricao_autor &"', fonte='"& fonte &"', where codigo=" & codigo
'  response.Write cmdinsere
' response.end
 objto.Execute (cmdinsere)
%>

------
Mero mortal!

#11 luckynho

luckynho

    12 Horas

  • Usuários
  • 120 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 21/01/2005, 13:35

olha o erro que está dando

Microsoft JET Database Engine erro '80040e14'

Erro de sintaxe (operador faltando) na expressão de consulta '''teste'''.

/admin/artigos/altera_artigo.asp, line 40

#12 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 21/01/2005, 13:53

Tem uma virgula ali que não é pra ter:

Errado:

cmdinsere = "update bibli_artigo set titulo='"& titulo &"', olho='"& olho &"', descricao='"& descricao &"', autor='"& autor &"', descricao_autor='"& descricao_autor &"', fonte='"& fonte &"', where codigo=" & codigo


Certo:

cmdinsere = "update bibli_artigo set titulo='"& titulo &"', olho='"& olho &"', descricao='"& descricao &"', autor='"& autor &"', descricao_autor='"& descricao_autor &"', fonte='"& fonte &"' where codigo=" & codigo


------
Mero mortal!

#13 luckynho

luckynho

    12 Horas

  • Usuários
  • 120 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 21/01/2005, 15:17

nao deu.. prevalece o msm erro!

#14 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 21/01/2005, 15:23

Faça um teste antes de executar seu comando SQL, execute estas linhas:

<%
...
cmdinsere = "update bibli_artigo set titulo='"& titulo &"', olho='"& olho &"', descricao='"& descricao &"', autor='"& autor &"', descricao_autor='"& descricao_autor &"', fonte='"& fonte &"', where codigo=" & codigo
response.Write cmdinsere
response.end
'objto.Execute (cmdinsere)
%>


Repare que seu código permanece identico, apenas tiramos os comentários de algumas linhas e colocamos em outras.
Este código vai imprimir seu comando SQL, copie e cole ele aqui para avaliação.
------
Mero mortal!

#15 luckynho

luckynho

    12 Horas

  • Usuários
  • 120 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 21/01/2005, 16:56

------- Request.Form --------

titulo=teste0
Submit2=Alterar Notícia
olho=teste1
descricao=teste2
descricao_autor=teste4
autor=teste3
fonte=teste5

------- Request.Querystring --------
update bibli_artigo set titulo=''teste0'', olho=''teste1'', descricao=''teste2'', autor=''teste3'', descricao_autor=''teste4'', fonte=''teste5'' where codigo=null


Eu atualizeo o "teste" para "teste0" e aparentemente ele executou tudo... só quando chega no codigo que está dando NULL




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq