Ver Mensaje Individual
  #2  
Antiguo 21-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Cita:
Empezado por Besto Ver Mensaje
Hola,

tengo un problema , quiero hacer un select muy sencillo tal que así

' select * from tabla where campo = " + valor + '"';

el problema me surge cuando valor tiene doble comilla (") me da un error.

¿Hay alguna función que pueda usar para que Delphi distinga entre la comilla del valor y la comilla de finalización de la sentencia ?

Uso Delphi 2 y bases de access.

Gracias.
Quien tiene que distinguir entre la comilla de terminación y la inserta no es Delphi, sino Access. Desconozco si hay algún caracter de escape o cual es el método utilizado para lograr esto allí.

En las bases de datos que cumplen de manera básica con el estándar SQL, las cadenas se envían en comillas simples y se reconocen las comillas intermedias al estilo tradicional de pascal.

Es decir, si querés una cadena cuyo contenido sea Art's, se escribiría 'Art''s', etc. (supongo que conoces ese método).

Delphi tiene una rutina que realiza la conversión, si te vale para Access, tu código quedaría así:

Código Delphi [-]
' select * from tabla where campo = ' + QuotedStr(valor);

Francamente no logro recordar si dicha función ya estaba disponible en Delphi 2.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita