La idea es la siguiente, si tu estas trabajando con información realmente necesitas "pocos datos", si quiere sacar un reporte de personas que han pagado entre el 1 de enero del 2008 hasta el día de hoy es ineficiente traer ademas todos los pagos realizados antes del primero de enero, lo mismo si tu quieres ingresar, cambiar o borrar los pagos de Pedro Perez, para que vas a tener en memoria los pagos de mil u once mil personas más que no estas usando en el momento, es ahí a la hora de hacer esos filtros donde Firebird es un monstruo que se come en velocidad a Paradox por lo que te explique anteriormente... Entonces para trabajar yo normalmente uso los componentes IBX, de forma tal que a la hora de consultar los pagos entre fechas hago algo así como el siguiente Query el cual pongo dentro de la propiedad SQL de un componente de tipo IBQuery:
Código SQL
[-]select * from pagos where fecha betwwen :f1 and :f2
Ahora cuando quiero realizar, modificar o borrar pagos trabajo con el componente IBDataSet en la propiedad SelectSQL pongo:
Código SQL
[-]Select * from pagos where id = :unParametro
luego en el componente visual le hago clic derecho al componente IBDataSet y selecciono DataSet Editor y genero los otros códigos de forma automática y así trabajo muy rápido