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

problemas con fecha y hora - UPDATE

Estas en el tema de problemas con fecha y hora - UPDATE en el foro de ASP Clásico en Foros del Web. Hola compis, que tal? Tengo el siguiente problema: Estoy intentando controlar la fecha y la hora de una visita . Estoy utiliznado una bd en ...
  #1 (permalink)  
Antiguo 15/06/2005, 10:02
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
problemas con fecha y hora - UPDATE

Hola compis, que tal?

Tengo el siguiente problema:
Estoy intentando controlar la fecha y la hora de una visita . Estoy utiliznado una bd en acces y quiero escribir los datos en una table, siendo los valeres de la tabla únicamente el número de visitas, la hora de la última visita y la fecha.
El contador me funciona bien, pero cuando quiero guardar Fecha y hora en la table me introduce caracteres estraños (sin sentido). El campo es del tipo texto.
codigo:

'Hacemos la conexión a la Base de Datos.
dim conexionBd1,rscont,sqlcont,activo
dim visitas,fechavisita,horavisita

Set ConexionBd1=Server.CreateObject("ADODB.Connection" )
SQLcont="SELECT * FROM contador"
conexionBd1.Open"DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& server.MapPath("datos.mdb"),3,1
set RScont=ConexionBd1.execute(SQLcont)
'Ahora nos fijamos si existe ya un registro.
'Si no existe lo creamos.

If RScont.EOF then
conexionBd1.Execute"INSERT INTO contador (hits) VALUES (1)"
'Si existe el registro se aumenta en 1 el valor.
Else
if session("activo") <> "si" then
Fechavisita = FormatDateTime(Cdate(Date), 2)
horavisita=time

conexionBd1.Execute"UPDATE contador SET hits="&(rscont("hits")+1)&""
conexionBd1.Execute"UPDATE contador SET fecha="&FormatDateTime(Cdate(Date), 2)&""
conexionBd1.Execute"UPDATE contador SET hora="&(&horavisita&)&""

end if
End IF
'La siguiente linea imprime la cantidad de hits.
Response.Write "Hasta este momento esta pagina fue ""visitadas"":<B> "&RScont("hits")&"</B>"
response.write("la fecha es:"&fechavisita)
'cerramos y limpiamos los objetos.
session("activo") = "si"
RScont.Close
conexionBd1.Close
Set RScont = nothing
Set conexionBd1 = nothing
%>

***********************
se agradece ayuda,please......
  #2 (permalink)  
Antiguo 15/06/2005, 17:41
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
conexionBd1.Execute"UPDATE contador SET fecha=#"&Date&"#,hora="&time
  #3 (permalink)  
Antiguo 16/06/2005, 08:11
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
estimado trasgukabi, la instrucción tal y como la pones NO funciona.
Reporta el error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta '16:17:03'

NECESITO AYUDA, GRACIAS
  #4 (permalink)  
Antiguo 16/06/2005, 10:53
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 20 años, 1 mes
Puntos: 2
Hola

Date = ???

Si es una variable, pues no la puedes usar de esa manera, si es directamente el comando que devuelve la vecha acutal, entonces no necesitas antes usar Cdate, al contrario, necesitas Cstr, para que ese campo tipo fecha lo convierta a un campo tipo cadena, pero ya que FormatDateTime lo hace, entonces no necesitas nada, el cual estas concatenando en la consulta, ademas te faltan comillas simples, entonces creo que seria algo como:

conexionBd1.Execute"UPDATE contador SET hits=" & Cstr(Cint(rscont("hits"))+1)&""
conexionBd1.Execute"UPDATE contador SET fecha='" & FormatDateTime(Date(), 2) & "'"
conexionBd1.Execute"UPDATE contador SET hora='" & horavisita &"'"

Intentalo de esa manera primero, después intenta lo de traguskabi, lo cual resulta más eficiente por que en una sola ejecución actualizas todos los campos, pero quedaría así:


conexionBd1.Execute "UPDATE contador SET
hits = " & Cstr(Cint(rscont("hits"))+1)
fecha = '" & FormatDateTime(Date(), 2) & "',
hora = '" & Cstr(time()) & "'"

Por otra parte, si esto funciona mirarás otros detalles, como, que en el campo fecha debido a la función FormatDateTime, es posible que te escriba algo para el tiempo, no veo ningún where, por lo cual afectarás toda una tabla, etc., pero no estoy seguro, total, si te funciona bien, pues no necesitarás más cambios.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #5 (permalink)  
Antiguo 26/06/2005, 04:16
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
Muchas Gracias por la Respuesta.
Funciona correctamente, un genio.

Si quieres puedes ver el resultador en WWW.PROYECTOSEJ.COM, no es gran cosa pero para empezar a practicar esta correcto.

De nuevo muchisimas GRACIAS... MAESTRO
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 08:51.