Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   update campo con comillas (https://www.clubdelphi.com/foros/showthread.php?t=65069)

toni.vi 18-11-2009 11:13:07

update campo con comillas
 
Hola,
Necesito hacer un update de este tipo:
Código SQL [-]
CommandText := ' update FMARTICULOS '
 + ' set DESCRIPCION = '   + '''' + valor + ''''
 + ' where ID = 1
donde valor es (L'opera) por ejemplo.
Es decir tiene una comilla dentro del texto.
Alguna idea.
Gracias

Ñuño Martínez 18-11-2009 11:39:05

Hay distintas formas dependiendo de el gestor de bases de datos que estés utilizando y desde dónde quieres utilizarlo.

¿Qué gestor de base de datos utilizas? ¿En qué lenguaje programas (aunque por lo que veo, es Pascal)? ¿Cómo conectas con el gestor (BDE, ADO, ...)?

toni.vi 18-11-2009 11:50:03

Utilizo Firebird 1.5 y MySql.
Debo realizar actualizaciones masivas en ambos casos.
Los componentes es lo menos, es cuestión de sintaxis, pero utilizo los DbExpress.
El lenguaje D7.

Neftali [Germán.Estévez] 18-11-2009 12:17:25

Para colocar el parámetro entre comillas es más sencillo y fácil de ver si utilizas QuotedStr. Eso te añade las comillas por ser un tipo String.

Código Delphi [-]
  ... Set Nombre = QuotedStr(Name)

En cuando a las interiores del texto, en SQLServer funciona si antes las cambias por dos comillas en lugar de una (no dobles, sino 2).

L''opera

toni.vi 18-11-2009 12:39:20

Si, ya se que QuotedStr funciona, pero es lo mismo que ''''.
De todas formas no puedo cambiar de una base de datos todos los campos a 2 comillas, traspasar y volver a cambiar los campos a una comilla.

Caro 18-11-2009 13:07:08

Cita:

Empezado por toni.vi (Mensaje 346890)
Si, ya se que QuotedStr funciona, pero es lo mismo que ''''.
De todas formas no puedo cambiar de una base de datos todos los campos a 2 comillas, traspasar y volver a cambiar los campos a una comilla.

Hola toni, Neftali no se refiere a cambiar los datos en la base de datos, sino a que en el momento que hagas el Update le mandes con dos comillas porque si es solo una lo tomara como un inicio o fin de cadena dependiendo donde esta la comilla. Acabo de hacer la prueba en firebird y si funciona con dos comillas simples:

Código Delphi [-]
update FMARTICULOS 
set DESCRIPCION = 'L''Opera' where ID = 1

En delphi puedes utilizar la función StringReplace para cambiar valor, una comilla por dos comillas simples.

Saluditos

Neftali [Germán.Estévez] 18-11-2009 17:28:30

Cita:

Empezado por Caro (Mensaje 346891)
Neftali no se refiere a cambiar los datos en la base de datos, sino a que en el momento que hagas el Update le mandes con dos comillas porque si es solo una lo tomara como un inicio o fin de cadena dependiendo donde esta la comilla.

Gracias Caro.
Tú sí que me entiendes... ;)

toni.vi 18-11-2009 17:44:37

Gracias Caro,
Yo tambien te he entendido.
Ya funciona bien.


La franja horaria es GMT +2. Ahora son las 12:49:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi