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

que hago mal ? sentencia SQL

Estas en el tema de que hago mal ? sentencia SQL en el foro de ASP Clásico en Foros del Web. HOla gente estoy intentado insertar en una base de datos ACCESS unos datos de un formulario y me da el siguiente error: Tipo de error: ...
  #1 (permalink)  
Antiguo 07/10/2004, 05:18
 
Fecha de Ingreso: octubre-2004
Mensajes: 7
Antigüedad: 20 años, 7 meses
Puntos: 0
que hago mal ? sentencia SQL

HOla gente estoy intentado insertar en una base de datos ACCESS unos datos de un formulario y me da el siguiente error:

Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis en la instrucción INSERT INTO.
/prueba/insertar.asp, line 37


he repasado el INSERT creo que lo tengo bien, y la conexion a la base de datos tambien funciona seguro.

¿ me podeis hechar una mano ? os pongo el codigo

<%
Dim snombre, scriador, sNombreCriadero,spassword,semail
Dim correcto
Dim Conn, RES, SQL,rSQL,xSQL
'Recogemos el formulario
snombre=Request.Form("nombre")
scriador=Request.Form("criador")
sNombreCriadero=Request.Form("NombreCriadero")
spassword=Request.Form("password")
semail=Request.Form("email")

correcto=True
'Comprobamos que no hay campos vacíos
if snombre="" then correcto=False end if
if scriador="" then correcto=False end if
if sNombreCriadero="" then correcto=False end if
if spassword="" then correcto=False end if
if semail="" then correcto=False end if

if correcto then
'Solo si todo está bien, comprobamos con la bd

set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\yorki.mdb"

'SQL="SELECT * FROM propietario WHERE (nombre='" & snombre &"')"
''Ejecutamos la consulta
'set RS = oConn.Execute(SQL)

'si no nos devuelve vacío es que el login ya está en uso
'if not rs.EOF then
' Response.Write("El nombre de usuario ya está siendo utilizado. ")
' Response.Write("Por favor, escoja otro.")
'else
' es vacio, así que le insertamos en la bd
SQL="INSERT INTO propietario (nombre,email,password) VALUES ('"&snombre&"', '"&semail&"','"&spassword&"')"
Conn.Execute(SQL)
' Response.Write("Gracias por registrarte, "& nombre)

'end if

'Limpiamos objetos
rs.Close
Conn.Close
set rs=nothing
set Conn=nothing
else

'El usuario ha metido datos incorrectos
Response.Write("Datos incorrectos o en blanco!")
end if


%>


He puesto varias lineas de codigo comentado por si hacia algo anteriormente que fallara.. pero no esta bien. Saludos

Última edición por Joaki; 07/10/2004 a las 05:22
  #2 (permalink)  
Antiguo 07/10/2004, 06:12
 
Fecha de Ingreso: octubre-2004
Mensajes: 7
Antigüedad: 20 años, 7 meses
Puntos: 0
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../../yorki.mdb")

con esto lo he solucionado... aunque no tenga mucho sentido ya que la conexion antes tambien la hacia bien. Si alguien me puede decir porque y cual es la diferencia se lo agradeceria.
  #3 (permalink)  
Antiguo 23/10/2004, 19:11
Avatar de amendoza  
Fecha de Ingreso: enero-2004
Ubicación: Guarena Venezuela
Mensajes: 139
Antigüedad: 21 años, 3 meses
Puntos: 0
El primer path es de manera fisica y la segun es de manera logica en funcion al IIS o PWS.

Saludos
__________________
:: El sentir del Llano en la WEB ::

www.llanerisimo.com
  #4 (permalink)  
Antiguo 24/10/2004, 04:52
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
lo mejor es que pongas la ruta general en la cadena de conexión, que la metas en un archivo de inclusión y que lo incluyas en cada página.
También puedes meter la cadena de conexión en una variable Application.
así:
Código:
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/yorki.mdb") 'SI TIENES LA BASE DE DATOS EN EL RAIZ
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 06:36.