PDA

Ver la Versión Completa : update campo con comillas


toni.vi
18-11-2009, 11:13:07
Hola,
Necesito hacer un update de este tipo:

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.


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


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
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.