Creo que te estás complicando la vida de una manera exagerada !!
Código Delphi
[-]ibquery1.SQL.clear;
ibquery1.SQL.Add('Select * from Registros');
ibquery1.SQL.Add('where dia between :fecha1 and :fecha2');
ibquery1.ParamByName('fecha1').AsDateTime := Calendar1.CalendarDate;
ibquery1.ParamByName('fecha2').AsDateTime := Calendar2.CalendarDate;
ibquery1.Prepare;
ibquery1.Open;