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

Error de sintaxis en la instrucción UPDATE.

Estas en el tema de Error de sintaxis en la instrucción UPDATE. en el foro de ASP Clásico en Foros del Web. Buenos días!! Tengo un problema con una consulta de actualización (UPDATE), dice que hay un error de sintaxis, os pongo el codigo para lo que ...
  #1 (permalink)  
Antiguo 08/03/2005, 05:41
 
Fecha de Ingreso: mayo-2002
Mensajes: 66
Antigüedad: 21 años, 11 meses
Puntos: 0
Error de sintaxis en la instrucción UPDATE.

Buenos días!!

Tengo un problema con una consulta de actualización (UPDATE), dice que hay un error de sintaxis, os pongo el codigo para lo que veáis:

sql = "UPDATE Colaboradores SET password = '" & nuevo_pass & "', fecha_ultima_modificacion = #" & Date() & "# WHERE codi_cob = " & nombre

conn.execute(sql)

Utilizo OLEDB ya que es más rápido que ODBC y he comprobado que todas las variables contengan valor y que los campos de la tabla Colaboradores estén correctos.
Llevo toda la mañana buscando a qué puede ser debido el error y no le encuentro explicación puesto que si ejecuto la consulta en el contexto de Access funciona perfectamente.

Gracias de antemano a todos!!!!
__________________
Un saludo,

Alberto
  #2 (permalink)  
Antiguo 08/03/2005, 05:46
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Si la variable nombre fuese numérica, te funcionaría, pero si es txt, no. Creo que te funcionará de esta forma:

sql = "UPDATE Colaboradores SET password = '" & nuevo_pass & "', fecha_ultima_modificacion = #" & Date() & "# WHERE codi_cob = '" & nombre &"'"
  #3 (permalink)  
Antiguo 08/03/2005, 05:51
 
Fecha de Ingreso: marzo-2005
Mensajes: 27
Antigüedad: 19 años, 1 mes
Puntos: 0
la variable nombre, aunque pueda confundir, es de tipo numero igual que el campo de la base de datos.
Eso esta controlado.

Gracias de todas formas.
  #4 (permalink)  
Antiguo 08/03/2005, 05:59
 
Fecha de Ingreso: mayo-2002
Mensajes: 66
Antigüedad: 21 años, 11 meses
Puntos: 0
Hola 3pies, la respuesta de frapesav ha sido escrita por mi, quería decirte que el campo nombre es de tipo numero por lo tanto no hacen falta las comillas.

Eso lo tenía controlado pero muchas gracias de todas formas.
Un abrazo.
__________________
Un saludo,

Alberto
  #5 (permalink)  
Antiguo 08/03/2005, 07:58
Avatar de kova  
Fecha de Ingreso: marzo-2003
Mensajes: 79
Antigüedad: 21 años, 1 mes
Puntos: 0
Alcarji, hay algunos motores de Base de Datos en los que el campo fecha no hay que pasarselo entre los caracteres #, sino '
Creo que el # solo se utiliza en Access, pero no estoy seguro, yo ahora estoy utilizando SQL Server y el manejo de las fechas es entre '
Es probable que este sea el error
La sentencia quedaría así:

sql = "UPDATE Colaboradores SET password = '" & nuevo_pass & "', fecha_ultima_modificacion = '" & Date() & "' WHERE codi_cob = " & nombre

Mucha Suerte!!!
  #6 (permalink)  
Antiguo 08/03/2005, 08:54
 
Fecha de Ingreso: mayo-2002
Mensajes: 66
Antigüedad: 21 años, 11 meses
Puntos: 0
Hola kova, yo estoy utilizando Access y puedes utilizar tanto # como las comillas. He probado de las dos maneras y falla en ambas.

Muchas gracias de todas formas.
__________________
Un saludo,

Alberto
  #7 (permalink)  
Antiguo 08/03/2005, 09:42
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Si estuviera Muzztein te diría ¡DEBUGUEA!

En vez de ejecutar la instrucción SQL (conn.execute(sql)), imprimila para ver el resultado:

response.write sql

luego, corroborá que todo sea correcto
__________________
...___...
  #8 (permalink)  
Antiguo 08/03/2005, 10:03
 
Fecha de Ingreso: mayo-2002
Mensajes: 66
Antigüedad: 21 años, 11 meses
Puntos: 0
La sintaxis de la consulta era perfecta, digo era porque ya lo he solucionado de otra manera:
Abriendo una consulta sobre un objeto recordset y asignando a cada campo a modificar el valor de la variable en cuestión terminando con un update() sobre el objeto recordset.

Gracias y un saludo.
__________________
Un saludo,

Alberto
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:18.