lo que dice
bicho esta super bien, pero si quieres utilizar una variable, que contenga tu consulta deberia ser de la sgte manera :
//por ejemplo para realizar una consulta a la base de datos...
var
Cod : String;
Activo : String;
Consulta : String;
Encontrados : Integer;
Cod:='1';
Activo:='S';
Encontrados:=0;
Consulta:='';
Consulta:='Select * From Tabla';
Consulta:=Consulta + ' Where Codigo = ' + Trim(Cod);
Consulta:=Consulta + ' And RegistroActivo = ''' + Trim(Activo) + '''';
//Cuando el campo es de un tipo de dato Varchar(cadena,texto) o de un
//tipo DateTime se le deben anteponer tres comillas simples (') y cerrar
//con tres comillas simples('), si es que la concatenacion continua, o
//4 comillas simples si la concatenacion termina, en este caso el campo
// "
Codigo" es de tipo Integer y RegistroActivo Varchar"....
TRY
AdoQuery1.Sql.Clear;
AdoQuery1.Sql.Text:=Consulta;
AdoQuery1.Open;
IF AdoQuery1.RecordCount > 0
THEN //Se encontraron coincidencias.
BEGIN
AdoQuery1.Last; //Nos movimos al ultimo registro...
Encontrados:=AdoQuery1.RecordCount;
AdoQuery1.First; //Nos movemos al primero...
WHILE NOT AdoQuery1.Eof
DO
BEGIN
//Recorremos los regitros encontrados....
AdoQuery1.Next; //Nos Movemos al Siguiente registro...
END;
END;
FINALLY
AdoQuery1.Close; //Cerramos el AdoQuery1...
END;
espero que te sirva...