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

Problema con Update

Estas en el tema de Problema con Update en el foro de ASP Clásico en Foros del Web. Tengo el siguiente código para validar un aupdate. Lo que pasa es que la clave primaria está compuesta por Usario, dia, mes, año, hora. Ahora ...
  #1 (permalink)  
Antiguo 19/03/2004, 07:44
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 22 años, 2 meses
Puntos: 9
Problema con Update

Tengo el siguiente código para validar un aupdate. Lo que pasa es que la clave primaria está compuesta por Usario, dia, mes, año, hora.

Ahora bien, si tengo el siguiente listado
como sigue Usuario, hora, dia, mes, año, solicitante, estado, consul

yo 12:00 13 03 2004 null pendiente 99
yo 12:30 13 03 2004 Alfonso Iturra Nuevo 100

Lo que quiero hacer por ejemplo..si hago una modificación de hora dentro de la misma fecha me va a arrojar un error y para ello debo validar la actualizacion...
Por ejemplo, si quiciera modificarle la hora para las 12:00 al usuario Alfonso, deberia hacer lo siguiente:
Consultar a la base de datos si hay una hora ese mismo dia con a las 12:00 y si está Pendiente o Vacia, si no existe, debería hacer la modificacion(Cosa que hace bien) pero si existe... debo dejar el campo autonumerico (consul =99) en una variable(Consulaux) y decirle primero .... que borre ese registro y luego actualice con la hora (12:00) del registro consul = 100 pero no lo hace... AYUDA!!!! PLEASE!!!!


consul = request.querystring("consul")

Set Mi_conexion = Server.CreateObject("ADODB.Connection")
Set res = Server.CreateObject("ADODB.Recordset")

Mi_conexion.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\Inetpub\wwwroot\horas\horas.mdb;"

' Selecciono primero los datos del consul para verificar que no hay duplicados, claro que lo hago con la llave primaria
' y no con el consul..que es un autonumerico para facilitar el trabajo
sql = "SELECT * FROM actividades WHERE usuario = '"&usuario&"' and año = '"&anno&"' and mes = '"&mes&"' and dia = '"&dia&"' and hora = '"&hora&"' "
Set res = Mi_conexion.Execute(sql)

If res.BOF and res.EOF then
sql = "UPDATE actividades SET año = '" & anno & "' , mes = '" & mes & "' , dia = '" & dia & "', hora = '" & hora & "', estado = '" & estado & "' WHERE consul = " & consul & ";"
Set Res = Mi_Conexion.Execute(sql)
Mi_Conexion.Close
Set Mi_Conexion = Nothing
response.redirect"aviso.asp"
else ' si hay un registro ya grabado
while res.eof
consulaux = res("consul")
wend
response.write(consulaux)
sql = "Delete * from actividades where consul = "&consulaux&" "
Set Res = Mi_Conexion.Execute(sql)
Mi_Conexion.Close
Set Mi_Conexion = Nothing

response.write("andate a la xux")
end if ' fin del if del BOF and EOF


El error que arroja es el siguiente

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta 'consul ='.

/horas/update.asp, line 64
__________________
Buena Vida...
Francisco

Última edición por Bluesman74cl; 19/03/2004 a las 08:04
  #2 (permalink)  
Antiguo 19/03/2004, 10:11
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Dos cosas:

primero comentá la línea Set Res = Mi_Conexion.Execute(sql) y posteriormente hacéle un response.write(sql) para ver si te está formando bien la consulta.

segundo, según entiendo estás haciendo un update del campo "consul" y decís que este es autonumérico. Si es así, no se puede hacer un update de un autonumérico.
__________________
...___...
  #3 (permalink)  
Antiguo 19/03/2004, 10:54
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 22 años, 2 meses
Puntos: 9
No me lo vas a creer...pero..... solo faltaba un res.movenext
__________________
Buena Vida...
Francisco
  #4 (permalink)  
Antiguo 19/03/2004, 11:52
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
por qué no habría de creerte?
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 17:25.