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

problema con un textarea en una sentencia sql

Estas en el tema de problema con un textarea en una sentencia sql en el foro de ASP Clásico en Foros del Web. trabajo contra una bd de access. lo q intento es q al modificarme un registro me meta lo de un textarea a la bd. si ...
  #1 (permalink)  
Antiguo 24/07/2004, 05:43
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 21 años, 1 mes
Puntos: 2
problema con un textarea en una sentencia sql

trabajo contra una bd de access.

lo q intento es q al modificarme un registro me meta lo de un textarea a la bd.
si meto un registro nuevo no tengo problema (este es el codigo):

Set Conn=Server.CreateObject("ADODB.Connection")
Conn.open "mia"

Set RS=Server.CreateObject("ADODB.Recordset")

sql="select * from escaparate"
rs.open sql,Conn, &H0001,3
rs.addnew
rs("localidad")=request.form("localidad")
rs("precio")=request.form("precio")
rs("desc")=replace(request.form("descrip"),vbcrlf, "<BR>") <--TEXTAREA
rs("imagen")=""
rs.update
rs.close

como podeis ver el textarea le digo que los enter q pulsa el usuario cuando mete algo los pase a <br> al meter en la bd y lo hago al reves cuando lo muestro (esto perfecto).

el problema viene cuando intento modificar un registro que ya existe (el codigo es el siguiente):

local=request.form("localidad")
prec=request.form("precio")
descr=replace(request.form("descrip"),vbcrlf,"<BR> ") <-TEXTAREA
'lo recibo de un formulario de otra pagina (hasta aqui bien)

SQL="update escaparate set desc='"&descr&"', localidad='"& local &"', precio="& prec &" where num="& session("id")
Set rs=Conn.execute (SQL)

'el error me da en la sentencia sql, el problema es del campo textarea (lo tengo comprobado), el error dice:

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

la verdad es q no se donde esta el error, el nombre de campos y variables creo q estan bien, no se si tengo q actualizar el registro de otra manera o q.

podria recoger el registro en variables borrarlo y luego volver a meterlo pero no es muy normal.

me podeis ayudar? gracias
  #2 (permalink)  
Antiguo 24/07/2004, 10:02
Avatar de skatomundo  
Fecha de Ingreso: junio-2002
Ubicación: Santiago - CL
Mensajes: 2.532
Antigüedad: 22 años, 10 meses
Puntos: 125
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.open "mia"

Set RS=Server.CreateObject("ADODB.Recordset")
local=request.form("localidad")
prec=request.form("precio")
descr=replace(request.form("descrip"),vbcrlf,"<BR> ") <-TEXTAREA


sql="select * from escaparate where num="& session("id")&" "
rs.open sql,Conn, &H0001,3
if not rs.eof then
rs.fields("desc") = descr
rs.fields("localidad") = local
rs.fields("precio") = cdbl(precio)
rs.update
end if
rs.close


"Los valores de las constantes para la operacion no las conozco no se si son: 1,3"


Salu2

Última edición por skatomundo; 24/07/2004 a las 10:03
  #3 (permalink)  
Antiguo 23/08/2004, 04:12
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 21 años, 5 meses
Puntos: 1
Bueno,e so es otra forma de actualizar un registro, pero el código que tiene, lo tiene perfecto, no debería dar error, a no ser que el campo de la base de datos, sea de un tamaño inferior a los caracteres que estas recogiendo del formulario o este en otro formato que no sea texto.

Salu2
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es 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 14:49.