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

Error sql

Estas en el tema de Error sql en el foro de ASP Clásico en Foros del Web. Me ha pasado que al probar mi página donde la gente registra cierta información me sale un error de sintaxis en la sql, pero si ...
  #1 (permalink)  
Antiguo 27/04/2007, 13:35
Avatar de Softdesigner  
Fecha de Ingreso: noviembre-2005
Ubicación: Gijón - Asturias - España
Mensajes: 240
Antigüedad: 19 años, 5 meses
Puntos: 0
Error sql

Me ha pasado que al probar mi página donde la gente registra cierta información me sale un error de sintaxis en la sql, pero si vuelvo a probar con los mismos datos a la 2º o 3º vez si funciona (o sea cuando le da la gana).

Como puede ser que a veces funcione y a veces no con la misma información?
__________________

  #2 (permalink)  
Antiguo 27/04/2007, 13:50
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Error sql

puedes poner el codigo de envio/recepcion de tus datos???

por que a ciegas es dificil decirte

suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 27/04/2007, 14:51
Avatar de Softdesigner  
Fecha de Ingreso: noviembre-2005
Ubicación: Gijón - Asturias - España
Mensajes: 240
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Error sql

El código es:

set conex = server.createobject("adodb.connection")
conex.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("basedatos.mdb")

reg=Server.CreateObject("ADODB.recordset")

sql="insert into datos(titulo,texto,email,telefono,a,c,t,fecha,sw,p recio,ip,codigo) values('"+request.Form("titulo")+"','"+request.For m("texto")+"','"+request.Form("mail")+"','"+reques t.Form("telefono")+"','"+request.QueryString("a")+ "','"+request.QueryString("c")+"','"+request.Query String("t")+"','"+fecha+"'," & 0 & "," & request.Form("precio") & ",'"+Request.servervariables("REMOTE_ADDR")+"' ,'" + codigo + "')"

set reg = conex.execute(sql)

Como decía a veces da error de sintaxis y si se vuelve a intentar de nuevo funciona.
__________________

  #4 (permalink)  
Antiguo 27/04/2007, 15:27
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Error sql

has chekado que sean correctos los formatos de las variables que inserta el usuario....

texto=texo.... etc

nosotros sabemos(dado que es nuestra aplicacion), que un campo es STRING, otro NUMERICO, etc... pero tienes definido en el formulario de insercion, que el usuario haya escrito, por ejemplo

si telefono es texto
telefono: 534-85697 <<<---- aki no importaria que escribiera guion medio

por otra parte
si fuese numerico y el usuario inserta como el texto arriba
telefono: 534-85697 <<<----- pero en esta parte si, y marcaria el error

como dije... sabes que es solamente numerico o texto, o los campos que aplicaste...

dado que fuera afirmativo este caso
tendrias que implementar, un poco de conversion de variables para que no te suceda eso de nuevo

IsNumeric(TEXTO)
....

etc

o en javascript, por parte del usuario

CBDL(),INT(),

formulitas de ese tipo, para que una ves que llegue a tu codigo de insercion, vaya lo mas limpio posible de errores de "DEDO"

o ya muy restrictivo, algo similar a este codigo
en este caso... el usuario solo podria insertar numeros
<script> <!--
var nav4 = window.Event ? true : false;
function acceptNum(evt){
// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
var key = nav4 ? evt.which : evt.keyCode;
return (key <= 13 || (key >= 48 && key <= 57));
}
</script>
y lo mandarias llamar en el formulario... de esta forma
<input type="text" onkeypress="return acceptNum(event)"/>

suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 27/04/2007, 15:38
Avatar de a n g e l u s  
Fecha de Ingreso: enero-2006
Ubicación: Chile
Mensajes: 237
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Error sql

PARA CONCATENAR SE UTILIZA EL & en tu codigo utilizas el signo +,


Código PHP:
sql ""
sql "INSERT INTO datos ("
sql sql "titulo,"
sql sql "texto,"
sql sql "email,"
sql sql "telefono,"
sql sql "a,"
sql sql "c,"
sql sql "t,"
sql sql "fecha,"
sql sql "sw,"
sql sql "precio,"
sql sql "ip,"
sql sql "codigo) "

sql sql "VALUES("
sql sql "'" request("titulo") & "',"
sql sql "'" request("texto") & "',"
sql sql "'" request("mail") & "',"
sql sql "'" request("telefono") & "',"
sql sql "'" request("a") & "',"
sql sql "'" request("c") & "',"
sql sql "'" request("t") & "',"
sql sql "'" fecha  "',"
sql sql " " ","
sql sql " " request("precio") & ","
sql sql "'" request.servervariables("REMOTE_ADDR") & "' ,"
sql sql "'" codigo "')"

on error resume next
 set reg 
conex.execute(sql)

  if 
err <> 0 then
     response
.write ("hay un error al guardar los datos : "&err.description)
  else
     
response.write ("datos guardados exitosamente ;-p ")
  
end if 
__________________
Atte,
A n g e l u s
Concepción - Chile
más vale respuestas bien pensadas, que 7000 post

Última edición por a n g e l u s; 27/04/2007 a las 15:42 Razón: complemento respuesta
  #6 (permalink)  
Antiguo 01/05/2007, 13:51
Avatar de Softdesigner  
Fecha de Ingreso: noviembre-2005
Ubicación: Gijón - Asturias - España
Mensajes: 240
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Error sql

Pues he cambiado lo del + por el & y controlado los valores y me va ya perfecto, muchas graciass!
__________________

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 15:56.