Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Caracteres especiales

Estas en el tema de Caracteres especiales en el foro de SQL Server en Foros del Web. Buenos días a todos/as, Tengo un pequeño formularioa realizado que una vez introducida la información deseada si le damos a enviar nos guarda esta información ...
  #1 (permalink)  
Antiguo 26/01/2012, 04:37
 
Fecha de Ingreso: febrero-2011
Mensajes: 33
Antigüedad: 13 años, 2 meses
Puntos: 0
Caracteres especiales

Buenos días a todos/as,
Tengo un pequeño formularioa realizado que una vez introducida la información deseada si le damos a enviar nos guarda esta información en una BBDD i se envia un correo electronica a una lista de distribución.
Pero ahora me sale el siguiente problema tengo un campo text en la BBDD, cuando relleno el textarea del formulario que va ligado a este campo i le meto algún caracter de tipo %, ', no me permite realizar la inserción ya que me da el siguiente error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Línea 1: sintaxis incorrecta cerca de '97'.

/web/caigudes/enviar.asp, line 7

Alguien sabe como se podria solucionar este problema.

Gracias.
  #2 (permalink)  
Antiguo 26/01/2012, 07:22
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Caracteres especiales

Lo mejor es que hagas una trace para identificar el comando exacto que se esta enviando a la base de datos...

sin el sera dificil que podamos opinar cual es el caracter o linea incorrecta...

How To: Use SQL Profiler

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 26/01/2012, 08:30
 
Fecha de Ingreso: febrero-2011
Mensajes: 33
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Caracteres especiales

Hola Andres,
El problema es el siguiente el caracter que no me coge es el apostrofe '. Me da error, porque motivo, si coge le %, ., :, etc.
Como puedo solucionarlo ?
  #4 (permalink)  
Antiguo 26/01/2012, 09:10
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Caracteres especiales

el ' apostrofe lo truena porque es un terminador de cadena en sql server lo que puedes hacer es poner doble apostrofe donde vaya este valor ejem: ''mi texto'' y asi metera la cadena 'mi texto' :)

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 26/01/2012, 17:41
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Caracteres especiales

Hola que tal, bueno un detalle.

Si estas mandando un parametro a un SP son 3 apostrofe ( ' ), si estas creando una tabla en una cadena y declaras un campo char si son 2, pero si estas ejecutando una cadena puede ser 1 sola apostre.

Código SQL:
Ver original
  1. --Ejemplo de la creacion de una tabla temporal en una cadena
  2.  
  3. DECLARE @cSql VARCHAR(1000)
  4.  
  5. SELECT @cSql = 'CREATE TABLE #TmpX ( campo1 VARCHAR(2) NOT NULL DEFAULT '' '' )'
  6. EXECUTE (@cSql)
  7.  
  8.  
  9. --Ejemplo de la cadena con 1 apostrofe:
  10.  
  11. DECLARE @cSql VARCHAR(1000),
  12.         @sNombre VARCHAR(500)
  13.  
  14. SET @sNombre = 'Nombre'
  15. SELECT @cSql = 'Hola: '+@sNombre+' como estas? '
  16. SELECT (@cSql)

Si puedes pon un poco de codigo, como para poder ver bien el error.

  #6 (permalink)  
Antiguo 30/01/2012, 09:01
 
Fecha de Ingreso: febrero-2011
Mensajes: 33
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Caracteres especiales

Hola a todos,
Ya casi he conseguido solucionar el problema lo he hecho de la siguiente forma:

Código:
Dim a
a = Request.Form("observacio")
a = Replace(a, "'", "''")
Pero ahora me sale el siguiente error:

Código:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Error al convertir el tipo de datos varchar a numeric.

/web/caigudes/enviar.asp, line 14
El campo donde se inserta la informacion es un text, alguien sabe como solucionar este inconveniente.

Gracias.
  #7 (permalink)  
Antiguo 30/01/2012, 10:56
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Caracteres especiales

¿Por que no le dejas al motor que haga el REPLACE de tu caracter?
__________________
MCTS Isaias Islas
  #8 (permalink)  
Antiguo 30/01/2012, 15:48
 
Fecha de Ingreso: febrero-2011
Mensajes: 33
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Caracteres especiales

Hola iislas, no entiendo que quieres decir con lo que deje al motor realizar el replace, me lo podrías explicar un poco.
Gracias.
  #9 (permalink)  
Antiguo 30/01/2012, 16:50
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Caracteres especiales

Si, que el REPLACE lo estas ejecutando desde tu cliente y deberias ejecutarlo directamente en el motor de SQL Server, con la misma instruccion REPLACE, pero ejecutada desde la base, mediante un STORE PROCEDURE
__________________
MCTS Isaias Islas

Etiquetas: caracteres, especiales, server, sql, campos
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 00:58.