Delimitadores de expresiones char

13/06/2006 - 10:33 por José Luis Capel | Informe spam
Hola a todos,

Tengo el siguiente problema (ejemplo simplificado):

cNomCli := "L'Hostal del Bon Menjar"
cSelect := "SELECT * FROM CLIENTES WHERE CNOMCLI = '" + cNomCli+"' ;"
oRs:Open(cSelect)

Esta secuencia me arroja un error de sintaxis dado que la variable cSelect
se expande como:

SELECT * FROM CLIENTES WHERE CNOMCLI = 'L'Hostal del Bon Menjar' ;

Mi pregunta es:

¿Hay alguna otra forma de delimitar las cadenas char? Por ejemplo, en xbase
podemos usar para estos casos los corchetes como delimitadores, quedando la
expresión como sigue:

SELECT * FROM CLIENTES WHERE CNOMCLI = [L'Hostal del Bon Menjar] ;

Sin embargo, esto no le gusta a SqlServer.

¿Alguna sugerencia?

Saludos y gracias,
José Luis Capel
PD: Estoy usando ADO con Xailer (www.xailer.com) y xharbour
(www.xharbour.org)
 

Leer las respuestas

#1 Alejandro Mesa
13/06/2006 - 14:05 | Informe spam
José Luis Capel,

Debes duplicar cada apostrofe dentro de la cadena.

cNomCli := "L'Hostal del Bon Menjar"



cNomCli := "L''Hostal del Bon Menjar"


AMB

"José Luis Capel" wrote:

Hola a todos,

Tengo el siguiente problema (ejemplo simplificado):

cNomCli := "L'Hostal del Bon Menjar"
cSelect := "SELECT * FROM CLIENTES WHERE CNOMCLI = '" + cNomCli+"' ;"
oRs:Open(cSelect)

Esta secuencia me arroja un error de sintaxis dado que la variable cSelect
se expande como:

SELECT * FROM CLIENTES WHERE CNOMCLI = 'L'Hostal del Bon Menjar' ;

Mi pregunta es:

¿Hay alguna otra forma de delimitar las cadenas char? Por ejemplo, en xbase
podemos usar para estos casos los corchetes como delimitadores, quedando la
expresión como sigue:

SELECT * FROM CLIENTES WHERE CNOMCLI = [L'Hostal del Bon Menjar] ;

Sin embargo, esto no le gusta a SqlServer.

¿Alguna sugerencia?

Saludos y gracias,
José Luis Capel
PD: Estoy usando ADO con Xailer (www.xailer.com) y xharbour
(www.xharbour.org)





Preguntas similares