Vamos a ver, ataquemos el problema des del principio...
Te estás confundiendo porqué Delphi y SQL utilizan el mismo operador para denotar un string.
Imaginate que tu quieres escribir un SQL de este estilo
Código SQL
[-]
SELECT *
FROM equipos
WHERE nombre = 'Pepito'
Ok, hasta aquí no problem. El problema viene cuando tu, utilizando código fuente Delphi, quieres generar esta sentencia.
Lo que tu, por lo que veo, intentarías es
Código Delphi
[-]
Query1.SQL.Add('SELECT * FROM equipos WHERE Nombre = 'Pepito');
Este código no compila. Porqué?
Vale, hagamos una suposición. Imaginate que las cadenas en Delphi se denotan con " y no con ' . Verdad que sería lógico escribir:
Código Delphi
[-]
Query1.SQL.Add("SELECT * FROM equipos WHERE Nombre = 'Pepito' ");
Pues aquí está el problema: que confundes lo que son los carácteres de string que forman parte de la sentencia SQL y los que forman parte de Delphi porqué se denotan igual.
En el código que no compila, no lo hace por lo siguiente, el compilador detecta un string, y un identificador no válido:
'SELECT * FROM equipos WHERE Nombre = '//este es el string que interpreta
Pepito' //esto se queda colgado y hace que no compile
lo que hay que hacer en delphi para poder utilizar el carácter ' dentro de un string en código es ponerlo dos veces. Por esto el código correcto en Delphi es:
Código Delphi
[-]
Query1.SQL.Add('SELECT * FROM equipos WHERE Nombre = ''Pepito''');
Para lo que sirve la función QuotedStr es para no tener que escribir todas estas comillas, lo que hace es agregarte el carácter ' al principio y final del string. (esto ya te lo contaba en un mensaje anterior, y lo puedes mirar en el help de Delphi)
Por esto, el código más leible es
Código Delphi
[-]
Query1.SQL.Add('SELECT * FROM equipos WHERE Nombre = ' + QuotedStr('Pepito'));
Espero que te sirva el rollo.
Saludos!
EDIT: Coño, vaya despiste con la propiedad Text... Sin comentarios...
