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

Error en un insert into

Estas en el tema de Error en un insert into en el foro de ASP Clásico en Foros del Web. Me salta un error que no comprendo. Yo creo que deberia aceptar. A ver si me pueden ayudar. Cita: Microsoft JET Database Engine error '80040e14' ...
  #1 (permalink)  
Antiguo 14/12/2004, 11:11
yz!
Invitado
 
Mensajes: n/a
Puntos:
Error en un insert into

Me salta un error que no comprendo. Yo creo que deberia aceptar. A ver si me pueden ayudar.
Cita:
Microsoft JET Database Engine error '80040e14'

Error de sintaxis en la instrucción INSERT INTO.
../funciones.asp, line 58

Código:
<%
	sub agregarcliente
		dim pagina_regreso
		pagina_regreso="registro.asp"
		
		dim email,clave,confirmclave
		email=trim(request("email"))
		clave=request("clave")
		confirmclave=request("confirmclave")
		response.write email&"<br>"
		response.write clave&"<br>"
		response.write confirmclave&"<br>"
		if email="" then
			error_formulario "Debes introducir una direcci&oacute;n de correo electr&oacute;nico",pagina_regreso
		end if
		if emailnovalido(email) then
			error_formulario "Debes introducir una direcci&oacute;n de correo válida",pagina_regreso
		end if
		if existe_cliente(email) then
			error_formulario "Ya ex&iacute;ste un cliente con ese email de acceso",pagina_regreso
		end if
		if compara_clave(clave,confirmclave) then
			error_formulario "Las dos contrase&ntilde;as deben coincidir",pagina_regreso
		end if
		
		'AQUI TENGO QUE INTRODUCIR TODOS LOS DATOS DEL		***NUEVO USUARIO***
		dim agrg_user
		clave=Cstr(clave)
		response.write clave&"<br>"
		agrg_user="INSERT INTO CLIENTES(EMAIL,PASSWORD) VALUES('"&email&"','"&clave&"')"
		objConCli.execute agrg_user
	end sub
%>

<%	
	function emailnovalido(email)
		if instr(email,"@")=0 or instr(email,".")=0 then
			emailnovalido="true"
		else
			emailnovalido="false"
		end if
	end function
%>
<%
	function existe_cliente(email)
		dim existe_sql,objexiste
		existe_sql="SELECT EMAIL FROM CLIENTES WHERE EMAIL='"&email&"'"
		set objexiste=Server.CreateObject("ADODB.recordset")
		objexiste.open existe_sql,objConCli
		if objexiste.eof then
			existe_cliente="false"
		else
			existe_cliente="true"
		end if
		objexiste.close
		set objexiste=nothing
	end function
%>
<%
	function compara_clave(clave,confirmclave)
		if StrComp(clave,confirmclave,0)<>0 then
			compara_clave="true"
		else
			compara_clave="false"
		end if
	end function
%>
<%	sub error_formulario(mensaje,pag_regreso) %>
		<!--mensaje que devuelve y pgina a la que vuelve-->
		<HTML><BODY bgcolor="#FFFF99">
		<form method="post" action="<%=pag_regreso%>">
		<table width="300" border="0" align="center" cellpadding="5" cellspacing="5">
          <tr>
            <td align="center"><b>Hay un problema con la informacin
            introducida</b></td>
          </tr>
          <tr>
            <td align="center"><b><%=mensaje%>!!</b></td>
          </tr>
          <tr>
            <td align="center"><input type="hidden" name="ierror" value="1"></td>
          </tr>
          <tr>
            <td align="center">
			<%
				dim campo
				for each campo in request.form
			%>
					<input type="hidden" name="<%=campo%>" value="<%=request(campo)%>">
			<%	next	%>
			</td>
          </tr>
          <tr>
            <td align="center"><input type="submit" value="Volver"></td>
          </tr>
        </table>	
		</form>
<%	response.end
	end sub	%>
el rpoblema esta en al subrutian agregar cliente que lalmo desde el archivo compruebareg.asp:

Código:
	<%
		dim objConCli
		set objConCli=Server.CreateObject("ADODB.Connection")
		objConCli.open="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("../Data/clientes.mdb")&";"
	%>
	<!--#include file="funciones.asp"-->
	<%
		dim ierror
		ierror=request("error")'detecta si ha habido algún error en el ingreso del formulario
	
	if ierror="" then 'que ierror venga vacío
		agregarcliente ' función que se encontrará en funciones.asp
	end if
	
	objConCli.close
	set objConCli=nothing
	%>
A ver si pueden ayudarme, por favor. Que estoy bloqueadisimo. Garcias y un saludo.
  #2 (permalink)  
Antiguo 14/12/2004, 11:21
 
Fecha de Ingreso: diciembre-2004
Ubicación: Bs. As. - Argentina
Mensajes: 200
Antigüedad: 20 años, 5 meses
Puntos: 0
No soy un entendido, pero no le veo problemas.
Te doy una idea que a mi me ha ayudado muchas veces.
Sobre la linea objConCli.execute agrg_user, ponte un response.write agrg_user
de esa forma ya tienes la sentencia SQL "resuelta" tal como esperas que viaje al Access. Luego un response.end por que si no sigue ejecutando y no ves la sentencia

Quizas alli detectes que te falta algo (o te sobra).
Si aun ahi todavia estuvieras perdido, puedes intentar ejecutarla en le access en una consulta a ver si el error que te da le access es un poco mas descriptivo.

Si todo esto ha fallado, espera que conteste alguien que sepa. Queda probado que yo no soy esa persona.

Saludos.
  #3 (permalink)  
Antiguo 14/12/2004, 12:48
yz!
Invitado
 
Mensajes: n/a
Puntos:
nada que no hay manera q no funciona.
Alguna ayuda
POR FAVOR!!!!!!!!!!
  #4 (permalink)  
Antiguo 14/12/2004, 13:04
 
Fecha de Ingreso: diciembre-2004
Ubicación: Bs. As. - Argentina
Mensajes: 200
Antigüedad: 20 años, 5 meses
Puntos: 0
Veo que alguien que sepa no aparece asi que te seguire ayudendo yo dentro de lo posible.
¿te da el mismo error?
¿podrias poner la sentecia "resuelta" (lease: lo que ha armado el agrg_user) para que la podamos ver?
Quizas con eso te pueda arrimar algun otro dato mas.....
  #5 (permalink)  
Antiguo 14/12/2004, 13:05
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 22 años, 2 meses
Puntos: 9
resume viejo... resume... cuál es la linea 58??
__________________
Buena Vida...
Francisco
  #6 (permalink)  
Antiguo 15/12/2004, 04:40
yz!
Invitado
 
Mensajes: n/a
Puntos:
A ver javopereira este es el response.write del agrg_user:
INSERT INTO CLIENTES(EMAIL,PASSWORD) VALUES('@.','p')

Y la linea 58 de funciones es el objConCli.execute:
dim agrg_user
agrg_user="INSERT INTO CLIENTES(EMAIL,PASSWORD) VALUES('"&email&"','"&clave&"')"
response.write agrg_user&"<br>"
objConCli.execute agrg_user

Otra cosa:
¿Puede deberse el error a que en la página ya tengo abierta una conexion con otra base de datos distinta?
  #7 (permalink)  
Antiguo 15/12/2004, 07:23
 
Fecha de Ingreso: diciembre-2004
Ubicación: Bs. As. - Argentina
Mensajes: 200
Antigüedad: 20 años, 5 meses
Puntos: 0
Si la conexion no tiene el mismo nombre, no creo que debería molestarte.
Otra pregunta mas, si cortas y pegas tu sentencia en una consulta de access, ¿te da algun error o inserta el registro sin problemas?
En el terreno de la adivinación, tambien puede ser el tema de que los () estan pegados.

Suerte
__________________
Javo.
www.thesitewatcher.com
Monitoreo y Auditoría de Sitios de Internet
  #8 (permalink)  
Antiguo 15/12/2004, 08:01
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
proba cambiando la linea del insert asi a ver que pasa:

agrg_user="INSERT INTO CLIENTES(EMAIL,PASSWORD) VALUES(" & email & ","& clave & ")"
  #9 (permalink)  
Antiguo 15/12/2004, 08:03
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
o proba esta

"INSERT INTO CLIENTES(EMAIL,PASSWORD) VALUES('" & email & "','"& clave & "')"
  #10 (permalink)  
Antiguo 16/12/2004, 15:16
yz!
Invitado
 
Mensajes: n/a
Puntos:
Por fin encontre la solucción:

Por lo visto access no permite la insercion en un campo llamado password, he solucionado enl problema llamandolo PASS.

gracias a todos
  #11 (permalink)  
Antiguo 16/12/2004, 20:46
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
Ahhh... las malditas "palabras reservadas"... qué simple sería nuestra vida sin ellas ¿no? ;)
__________________
...___...
  #12 (permalink)  
Antiguo 17/12/2004, 04:21
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
en algun lado lei que se pueden usar
palabras reservadas precedidas por corchetes
["palabra"]
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:56.