Puede ser el problema las comillas simples, prueba usar la funcion "QuotedStr" en los parametros que pasas. Lo otro que veo que le parametro Filter (Filter := ''
del query esta demas porque estas borrando la consulta con un clear y asignado otra vez.
Yo hago mas o menos asi ese tipo de consultas:
Código Delphi
[-]
try
rutinas.AbreConexion;
TListaEmail.DisableControls;
Conexion.Lista.SQL.Clear;
Conexion.Lista.SQL.Add('NRO_DOC, EMAIL_PER FROM PERSONAL'+
' WHERE EMAIL_PER<>' + quotedstr('') + 'AND ID_PER>0');
Conexion.Lista.Prepare;
Conexion.Lista.Open;
if Conexion.Lista.RecordCount>0 then
begin
...
end;
finally
TListaEmail.EnableControls;
Conexion.Lista.Close;
rutinas.CierraConexion;
end;
Es bueno usar parámetros en los querys pero en este caso como era algo pa llenar una lista rápida, lo hice así.