Foros del Web » Programando para Internet » ASP Clásico »

Error de sintaxis en la expresion UPDATE

Estas en el tema de Error de sintaxis en la expresion UPDATE en el foro de ASP Clásico en Foros del Web. Hola, tengo el siguiente código: set rs=Server.createobject("ADODB.Recordset") set conn=Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\xxx\db1.mdb") id=request.form("id") nombre=request.Form("nombre") pass=request.Form("pass") SQL="UPDATE login_admin SET nombre='"&nombre&"', password='"&pass&"' WHERE id='"&id&"'" set ...
  #1 (permalink)  
Antiguo 10/07/2004, 06:09
 
Fecha de Ingreso: julio-2003
Mensajes: 116
Antigüedad: 21 años, 10 meses
Puntos: 0
Error de sintaxis en la expresion UPDATE

Hola, tengo el siguiente código:


set rs=Server.createobject("ADODB.Recordset")
set conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\xxx\db1.mdb")
id=request.form("id")
nombre=request.Form("nombre")
pass=request.Form("pass")

SQL="UPDATE login_admin SET nombre='"&nombre&"', password='"&pass&"' WHERE id='"&id&"'"

set rs=conn.execute(SQL)


Y me da el error mencionado en el título. Yo creo que la expresión está bien escrita, puesto que con otras tablas me funciona. Qué puede pasar???
Gracias a to2.
  #2 (permalink)  
Antiguo 11/07/2004, 15:13
Avatar de jorel  
Fecha de Ingreso: abril-2003
Ubicación: Monterrey, N.L.
Mensajes: 253
Antigüedad: 22 años, 1 mes
Puntos: 0
Intenta colocando solamente las comillas dobles al ID, ya que seguramente es numerico

Código PHP:
SQL="UPDATE login_admin SET nombre='"&nombre&"', password='"&pass&"' WHERE id="&id&" " 
__________________

:adios:

Jorge Santana

Última edición por jorel; 11/07/2004 a las 19:24
  #3 (permalink)  
Antiguo 12/07/2004, 07:50
 
Fecha de Ingreso: julio-2003
Mensajes: 116
Antigüedad: 21 años, 10 meses
Puntos: 0
Nada, sigue igual. El campo id es texto, al igual que los otros dos. Pero no sé por qué sigue sin funcionarme. Si la instrucción es correcta. No sé, echarme una manita maestros.
Por si acaso pongo el código de la página formulario. A ver si puede ser que esté ahí el fallo.
Código PHP:
    set rs=Server.createobject("ADODB.Recordset")
    
set conn=Server.CreateObject("ADODB.Connection")    
    
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath("..\xxx\db1.mdb")
    
SQL="Select * from login_admin"
    
set rs=conn.execute(SQL)
    if 
not rs.eof or not rs.bof then
    rs
.movefirst
    
do until rs.eof
    response
.write "<form name=form1 method=post action=mod_us.asp>"
    
response.write "<tr><td bordercolor=#ffffff><input type=hidden value="&rs.fields("id")&" name=id></td></tr>"
    
response.write "<tr><td bordercolor=#ffffff>Nombre:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=text value="&rs.fields("nombre")&" name=nombre></td></tr>"
    
response.write "<tr><td bordercolor=#ffffff>Contraseña: <input type=text value="&rs.fields("password")&" name=pass></td></tr>"
    
response.write "<tr><td bordercolor=#ffffff><input type=submit name=submit value=Modificar></td></tr>"
    
response.write "</form>"
    
rs.movenext
    loop
    
else
    
response.write "<tr><td>No hay registros</td></tr>"
    
end if 

Última edición por knarfy; 12/07/2004 a las 07:53
  #4 (permalink)  
Antiguo 12/07/2004, 09:45
 
Fecha de Ingreso: julio-2003
Mensajes: 116
Antigüedad: 21 años, 10 meses
Puntos: 0
Vale, solucionado. El problema era que el motor de Microsoft Jet 4.0 tiene palabras reservadas que cuando se usan, simplemente no deja.
Aquí teneis una url con la lista de palabras reservadas:
http://support.microsoft.com/?id=248738

En este caso la palabra reservada era password y simplemente para que funcionara la instrucción le añadí los [] (corchetes).
Código PHP:
SQL="Update login_admin set nombre='"&nombre&"',[password]='"&pass&"' where id='"&id&"' 

Gracias a todos por intentar ayudarme.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:22.