yo creo que deberias armar una cadena dependiendo de los edits algo as
Código Delphi
[-]strsql := 'select * from PERSONAS where FECHANC > :B and FECHANC < :C '
if edtPais.text <> '' then
strsql := Strsql + ' and Pais = ' + quotedStr(edtPais.text)
Endif
if edtProvincia.text <> '' then
strsql := Strsql + ' and Provincia = ' + quotedStr(edtPais.text)
Endif
y asi sucesivamente por cada edit