Hola Vales.
Creo que el error se produce por la forma en que concantenas las constantes literales, más exáctamente la falta de espacios entre expresiones:
Código Delphi
[-]
...from PACIENTES, LOCALIDADES, COBERTURAS_MEDICAS'+
'where LOCALIDADES...
Ya que la cadena quedaría: "from PACIENTES, LOCALIDADES, COBERTURAS_
MEDICASwhere LOCALIDADES..."
De todas formas te conviene acostumbrarte a utilizar parámetros para evitar la posibilidad de
inyección SQL, por otro lado también es más óptimo.
Proba de este modo:
Código Delphi
[-]
with DM.Q_pac do
begin
Close;
SQL.Clear;
SQL.Add('SELECT APELLIDO_Y_NOMBBRE, NUMERO_DOCUMENTO, EDAD, SEXO, LOCALIDAD,NOMBRE ');
SQL.Add('FROM PACIENTES, LOCALIDADES, COBERTURAS_MEDICAS ');
SQL.Add('WHERE LOCALIDADES.LOCALIDAD = :LOCALIDAD ');
SQL.Add('AND COBERTURAS_MEDICAS.NOMBRE = :COBERTURA ');
SQL.Add('AND LOCALIDADES.ID_LOC = PACIENTES.ID_LOC ');
SQL.Add('AND COBERTURAS_MEDICAS.ID_COBER = PACIENTES.ID_COBER');
ParamByName('LOCALIDAD').AsString:= loc.Text;
ParamByName('COBERTURA').AsString:= cm.Text;
Open;
end;
Un saludo.
Edito: No había visto la respuesta del amigo
newtron, pero como verás coincido con él en la apreciación.
