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

¿sentencia sql loca? o soy yo

Estas en el tema de ¿sentencia sql loca? o soy yo en el foro de ASP Clásico en Foros del Web. hola a tod@s!! estoy haciendo un trabajito y me toca actualizar una base de datos de access. cuando intento ejecutar la sentencia sql, segun lo ...
  #1 (permalink)  
Antiguo 23/07/2004, 12:39
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 21 años
Puntos: 2
¿sentencia sql loca? o soy yo

hola a tod@s!!

estoy haciendo un trabajito y me toca actualizar una base de datos de access. cuando intento ejecutar la sentencia sql, segun lo que ponga en la sentencia me da dos errores que no se pq salen.



Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la instrucción UPDATE.

SQL="update escaparate set localidad='"& local &"', precio='"& prec &"', desc='"& descr &"' where num='"& nume &"'"

menos precio y num que son numericos, los demas son de tipo texto



Tipo de error:
Error de compilación de Microsoft VBScript (0x800A0409)
Constante de cadena sin terminar
/luis/inmobaraka/gestor/hacer_modif.asp, línea 27, columna 109

SQL="update escaparate set localidad='"& local &"', precio="& prec &", desc='"& descr &"' where num="& nume &"

a esta ultima sentencia tambien la dejo sin el ultimo &" pero entonces me vuelve a sacar el primer error.

os agradeceria que me ayudarais, gracias!!
  #2 (permalink)  
Antiguo 23/07/2004, 12:51
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
La sentencia correcta sería:

SQL="update escaparate set localidad='"& local &"', precio="& prec &", desc='"& descr &"' where num="& nume

Si son campos numéricos, no se utiliza el apóstrofe. La segunda estaba "casi bien", sólo le sobraba el &" del final.

Saludos

Última edición por AlZuwaga; 23/07/2004 a las 12:53
  #3 (permalink)  
Antiguo 26/07/2004, 23:30
Avatar de amendoza  
Fecha de Ingreso: enero-2004
Ubicación: Guarena Venezuela
Mensajes: 139
Antigüedad: 21 años, 3 meses
Puntos: 0
No estoy seguro de tu planteamiento pero sí los datos vienes de un formulario no veo por ningun lado:

request.form("nombre")

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

www.llanerisimo.com
  #4 (permalink)  
Antiguo 26/07/2004, 23:47
 
Fecha de Ingreso: diciembre-2001
Mensajes: 199
Antigüedad: 23 años, 4 meses
Puntos: 0
Cita:
Iniciado por dazuaga
La sentencia correcta sería:

SQL="update escaparate set localidad='"& local &"', precio="& prec &", desc='"& descr &"' where num="& nume

Si son campos numéricos, no se utiliza el apóstrofe. La segunda estaba "casi bien", sólo le sobraba el &" del final.

Saludos

psss hoy ando sin los sour de pre sábado y me parece que no le sobraba nada más bien creo que le faltaba la comilla " para cerrar la que inició antes de update

osease asi
SQL="update escaparate set localidad='"& local &"', precio="& prec &", desc='"& descr &"' where num="& nume &""


pos por ahí mejor vengo en estado etílico
  #5 (permalink)  
Antiguo 27/07/2004, 02:38
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 21 años
Puntos: 2
soy yo otra vez, siento deciros que no me funciona nada de lo que me habeis dicho. esta es la situacion:

session("id")=request.querystring("ide")
Set Conn=server.createobject("ADODB.Connection")
Conn.Open "mia"

'Set rs=Server.CreateObject("ADODB.Recordset")
'sql="select * from escaparate where num="& session("id")
'rs.open sql,Conn, H0001,3
'set rs=Conn.execute (sql)

sql="Update escaparate set localidad='"&session("uno")&"',precio="&session("d os")&",desc='"&session("tres")&"' where num="& session("id")&""
set rs=Conn.execute (sql)

'if not rs.eof then
'rs.fields("desc") = replace(session("tres"),vbcrlf,"<BR>")
'rs.fields("localidad") = session("uno")
'rs.fields("precio") = session("dos")
'rs.update
'rs.close
'end if

como veis lo he intentado de 2 formas, una que esta como comentario( ' ) y la otra que es la q se ejecuta ahora. pero tanto una como otra siguen sacandome el error de sintaxis. he probado con comillas simples, dobles, con otra comilla al final, ahora con variables globales y nada
  #6 (permalink)  
Antiguo 27/07/2004, 04:09
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
al parecer no hay nada malo en tu consulta, prueba a ir quitando 1 campo y su valor y asi sucesivamente hasta que ya no te tire el error. con eso sabras donde esta error . lo otro es que puede ser que dentro de tus variables tengas alguna comilla simple o doble.

un saludo
__________________
Manual de ASP Avanzado ;-)
  #7 (permalink)  
Antiguo 27/07/2004, 04:49
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 21 años
Puntos: 2
hola,

tengo comprobado que el campo que da problemas es el desc, q es un textarea.

la cosa es q para meter un registro nuevo no tengo ningun problema, el problema es al actualizar ese campo textarea


adios y gracias
  #8 (permalink)  
Antiguo 27/07/2004, 10:55
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
Cita:
Iniciado por forastero
psss hoy ando sin los sour de pre sábado y me parece que no le sobraba nada más bien creo que le faltaba la comilla " para cerrar la que inició antes de update

osease asi
SQL="update escaparate set localidad='"& local &"', precio="& prec &", desc='"& descr &"' where num="& nume &""


pos por ahí mejor vengo en estado etílico

Mejor tomate un par de piscos (y convidá =). El campo nume es numérico, por lo tanto no se necesita ninguna comilla al final

"Me parece" que "desc" es una palabra reservada (ORDER BY .... DESC). Por allí puede venir el error. Yo intentaría esto:


Código:
sql="Update escaparate set localidad='"&session("uno")&"',precio="&session("dos")&",[desc]='"&session("tres")&"' where num="& session("id")
no sé, no sé.. con intentar no se pierde nada
  #9 (permalink)  
Antiguo 27/07/2004, 19:52
 
Fecha de Ingreso: diciembre-2001
Mensajes: 199
Antigüedad: 23 años, 4 meses
Puntos: 0
Cita:
Iniciado por dazuaga
Mejor tomate un par de piscos (y convidá =). El campo nume es numérico, por lo tanto no se necesita ninguna comilla al final

"Me parece" que "desc" es una palabra reservada (ORDER BY .... DESC). Por allí puede venir el error. Yo intentaría esto:


Código:
sql="Update escaparate set localidad='"&session("uno")&"',precio="&session("dos")&",[desc]='"&session("tres")&"' where num="& session("id")
no sé, no sé.. con intentar no se pierde nada


U_u

pues si, el campo nume es numérico por ende no debe ir asi ' " & nume & " '
pero si puede ir así " & nume &"


el Error dice:
"Constante de cadena sin terminar"
y al update le precedia una comilla " que no vi que se cierra en ningún sitio...


por lo menos a mi me funka así

set rs=conn.execute("update curricular set estado='"& var1 &"', portunidad="& op &" where rut_alumno='"& rut &"' and asicod="& vec(i)&"")

donde oportunidad y asicod son numéricos
además si fuese un error en el tipo de datos el error no diaría "Constante de cadena sin terminar"

y hoy no ando con sour pero si con un buen tintolio navegao pa la lluvia....

y bue te cambio unas cajitas de pisco ( 12 botellas x caja) por los conocimientos del abuelo

Abuelo Kbron

Última edición por forastero; 27/07/2004 a las 19:55
  #10 (permalink)  
Antiguo 27/07/2004, 20:02
Avatar de Miguel Delgado  
Fecha de Ingreso: marzo-2004
Ubicación: Barranquilla
Mensajes: 130
Antigüedad: 21 años, 1 mes
Puntos: 0
Palabra Reserva!

Bueno, creo...... que el error se debe a que la palabra DESC es reservada en sql, por medio de ella puedes mostrar la estructura de un tabla cualquiera!, te aconsejo no uses, nombre los nombre de campos con palabras reservadas de SQL pues te puede suceder esto!
__________________
Fox Mulder

El destino es el que baraja las cartas, pero nosotros somos los que jugamos. :pensando: :pensando:
  #11 (permalink)  
Antiguo 27/07/2004, 22:55
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
ok, foras, cuando te quieras tomar unas vacaciones decile a tu jefe que tenés un reemplazo.

Soy argentino y cobro mierda, ya lo sabés
  #12 (permalink)  
Antiguo 27/07/2004, 23:45
 
Fecha de Ingreso: diciembre-2001
Mensajes: 199
Antigüedad: 23 años, 4 meses
Puntos: 0
Cita:
Iniciado por dazuaga
ok, foras, cuando te quieras tomar unas vacaciones decile a tu jefe que tenés un reemplazo.

Soy argentino y cobro mierda, ya lo sabés

Kbron no tengo jefe y haz recordar al abuelo....
  #13 (permalink)  
Antiguo 28/07/2004, 00:41
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
Cita:
Iniciado por forastero
Kbron no tengo jefe y haz recordar al abuelo....
No puedo... el abuelo está más pelotudo que no de sus nietos.
__________________
...___...
  #14 (permalink)  
Antiguo 29/07/2004, 01:35
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 21 años
Puntos: 2
solucionado

Efectivamente, la palabra desc es una palabra reservada y por eso me daba el error asi q cambie el nombre del campo de la base de datos a descen, hice los cambios en el codigo y listo.


muchas gracias por todo!
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 01:07.