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

Ayuda con error de ASP

Estas en el tema de Ayuda con error de ASP en el foro de ASP Clásico en Foros del Web. Hola Amigos tengo un foro funcionando (basado en un codigo que bajé de aspfacil y que he personificado) Desde siempre he notado que en determinado ...
  #1 (permalink)  
Antiguo 15/08/2006, 19:13
Avatar de darom  
Fecha de Ingreso: agosto-2006
Mensajes: 43
Antigüedad: 18 años, 8 meses
Puntos: 0
Exclamación Ayuda con fechas en un foro

Hola Amigos tengo un foro funcionando (basado en un codigo que bajé de aspfacil y que he personificado)
Desde siempre he notado que en determinado momentos es imposible postear nuevos mensajes. Y en otros (la mayoría del tiempo) el foro funciona bien.
He detectado que hay un problema con los formatos de las fechas pero no logro saber cual es el problema. Si alguien puede ayudarme estaré infinitamente agradecido.

El error es el siguiente:

Microsoft JET Database Engine error '80040e07'

Syntax error in date in query expression 'FechaHora=#15/08/2006 07:40:36 p.m.#'.

/nuevomsg.asp, line 140




Aquí abajo está el código



1<%@LANGUAGE="VBSCRIPT"%>
<%Option Explicit%>
<!--#include file="comunes.asp"-->
<!-- #Include File="ValidarEmail.asp"-->
<%
' NUEVOMSG.ASP
' Preprocesa el mensaje y si es correcto lo envía a la base de datos

'================================================= ===================================
10Sub TotalForo(idforo, fecha)
' Incrementa en 1 el total de mensajes del foro y añade la fecha del ultimo
Dim rs, SQL
Dim total


Registro rs

SQL="SELECT * FROM Foros WHERE IdForo="&idforo&";"
rs.Open SQL, oConn,3,3
20total=CInt(rs.Fields("Total"))
total=total+1
rs.Fields("Total")=total
rs.Fields("Ultimo")=fecha
rs.Update

LimpiarRS rs



30End Sub
'================================================= ===================================

Sub ProcesarCuerpo (str)
' preprocesa cuerpo del mensaje

if str="" then
ok=False
Response.Write("<b>El cuerpo del mensaje no puede ser vacío</br>")
end if
40' Arreglamos saltos de líneas
Cuerpo=Replace(cuerpo,vbCrLf,"<BR>")
'preprocesa los smilies
Cuerpo=Replace(cuerpo, ":)", "<img src=images/smile.gif border=0>")
Cuerpo=Replace(cuerpo, ":(", "<img src=images/sad.gif border=0>")
Cuerpo=Replace(cuerpo, ":[", "<img src=images/angry.gif border=0>")
Cuerpo=Replace(cuerpo, ":D", "<img src=images/biggrin.gif border=0>")
Cuerpo=Replace(cuerpo, ":X", "<img src=images/kiss.gif border=0>")
Cuerpo=Replace(cuerpo, ":`(", "<img src=images/cry.gif border=0>")
Cuerpo=Replace(cuerpo, ":O", "<img src=images/omg.gif border=0>")
50Cuerpo=Replace(cuerpo, ":P", "<img src=images/tongue.gif border=0>")
Cuerpo=Replace(cuerpo, ";)", "<img src=images/wink.gif border=0>")
Cuerpo=Replace(cuerpo, "[?]", "<img src=images/icon_smile_question.gif border=0>")

End Sub
'================================================= ===================================
Sub ProcesarNombre (nombre)
Dim Ip
' preprocesa el autor

60nombre=RTrim(LTrim(nombre))
if nombre="" then
ok=False
Response.Write("<b>El nombre no puede estar vacío</b><br>")
end if
Ip=Request.Form("Ip")
If Ip="" then
ok=False
Response.Write("<b>La dirección IP no puede estar vacía</b><br>")
end If
70End Sub
'================================================= ===================================

Sub ProcesarEmail (email)

if Validar_EMail(Request.form("Email")) = 0 then response.redirect "error5.htm"
if Validar_EMail(Request.form("Email")) = 1 then response.redirect "error5.htm"
if Validar_EMail(Request.form("Email")) = 2 then


80else

email=" "
end if

End Sub 'Procesar email

'================================================= ===================================
Sub FechadeHoy (f)

90Dim hoy

hoy=Now()


f=hoy

End Sub 'FechadeHoy
'================================================= ===================================

100Dim oConn, rs, SQL

Dim idmensaje

Dim idforo, idcabecera, idpadre, autor, email, tema, cuerpo, f, Ip

' indica si debo o no insertar en bd
Dim ok

ok=True
110
call FechadeHoy (f)
idforo=CInt(Request.Form("IdForo"))
idcabecera=CInt(Request.Form("IdCabecera"))
idpadre=CInt(Request.Form("IdPadre"))
autor=CStr(Request.Form("Autor"))
ProcesarNombre autor
email=CStr(Request.Form("Email"))
ProcesarEmail email
tema=RTrim(LTrim(CStr(Request.Form("Tema"))))
120if Len(tema)=0 then
ok=False
end if
if Len(tema)>100 then
tema=Left(tema, 100)
end if

Ip=Request.Form("Ip")
cuerpo=Request.Form("Cuerpo")
ProcesarCuerpo cuerpo
130

if ok then
'añado mensaje a bd

Conectar

SQL="SELECT * FROM Mensajes WHERE FechaHora=#"&f&"#;"

Registro rs
140rs.Open SQL, oConn, 2, 2

rs.AddNew

rs.Fields("IdForo")=idforo
rs.Fields("IdCabecera")=idcabecera
rs.Fields("IdPadre")=idpadre
rs.Fields("Autor")=autor
rs.Fields("Email")=email
rs.Fields("FechaHora")=f
150rs.Fields("Tema")=tema
rs.Fields("Cuerpo")=cuerpo
rs.Fields("Ip")=Ip

rs.Update

' Refresco el recordset
rs.Requery


160'Por si acaso
rs.MoveFirst

idcabecera=rs.Fields("IdCabecera")
idmensaje=rs.Fields("IdMensaje")
if idcabecera=0 then
' Abre una nueva discusión
rs.Fields("IdCabecera")=idmensaje
end if
rs.Update
170
LimpiarRS rs
'================================================= ===================================

'Notificar por email
Dim Correo, Correo1,Correo2,emailaddresses, objMail
' Enviamos notificaciones de las respuestas a las preguntas hechas en el foro
' idpadre = 0 -> es el primer mensaje en Id Cabecera -> no hay a quien notificar respuestas
If idpadre <> 0 Then
'Seleccionamos de la tabla solo los emails
180Conectar
SQL="SELECT DISTINCT Email FROM Mensajes WHERE IdCabecera="&IdCabecera&" ;"
Registro rs
rs.Open SQL, oConn, 2, 2
' Construimos la variable con todas las direcciones
DO UNTIL rs.eof
Correo=rs.Fields("Email")
Correo1=Correo1 & "; " & Correo
Correo2=Correo1
rs.movenext
190LOOP

' Remove the first semi-colon from the string
emailaddresses=lcase(Mid(Correo2,2))
' Create components
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.BodyFormat = 0
objMail.MailFormat = 0
objMail.From = "Foros Vistamedica.com<[email protected]>"
objMail.Bcc = emailaddresses
200objMail.Value("Reply-To") = "[email protected]"
objMail.Subject = "Nuevo mensaje en los Foros Vistamedica!"
objMail.Body = "Estimado/a:<BR>Un nuevo mensaje ha sido publicado respecto al asunto: <B><I>" &tema& "</I></B> en el Foro Vistamedica.com " & _
". <BR>Tu puedes encontrar el foro en <a href=""vinculo</a> <BR>Para " & _
"tu conveniencia, la dirección del nuevo mensaje es " & _
"<a href=""vinculo" &idmensaje& """>vinculo?id=" &idmensaje& "</a>." & _
"<BR>Atentamente,<BR><BR><B><I>El Equipo Vistamedica</I></B>"
objMail.Send
Set objMail = Nothing
End If
210
'================================================= ===================================

'Modifico el foro

Totalforo idforo, f
LimpiarConexion

Response.Write("<H1>¡Gracias por tu mensaje!</H1>")
Response.Write("<img border=0 src=images/ip.gif> Tu dirección IP fue guardada con éxito!")
220Response.Write("<BR>")
Response.Write("<A HREF=""foros.asp?f="&idforo&"""><img border=0 src=../images/icon_go_left.gif width=15 height=15>Volver al foro</A>")
Response.Write("<BR>")
Response.Write("<A HREF=""mostrarmsg.asp?id="&idmensaje&"""><img border=0 src=../images/icon_profile.gif width=15 height=15>Ver tu mensaje</A>")
Response.Write("<BR>")
If idcabecera <>0 then
Response.Write("<A HREF=""mostrarmsg.asp?id="&idcabecera&"""><img border=0 src=../escribir.gif width=15 height=15>Volver al mensaje inicial</A>")



230end if
else

Response.Write("<B>Error al procesar el mensaje, Verifica que la dirección de email sea válida</BR></B>")

end if

%>

Última edición por darom; 18/08/2006 a las 18:36
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 16:52.