Que tal monchito_elroro; si hablamos de Lazarus hay una buena alternativa, donde se trata a los archivos planos como si fuera una tabla de una base de datos y hacer consultas tipo LIKE de SQL. Con esto se evita bombardear la base de datos.
ZMSQL is an open source, TBufDataset SQL enhanced in-memory database for FreePascal (FPC), operating with semicolon-separated values flat text tables as a persistence store.
This means you can use files to store your data but get the speed of in-memory processing. Completely written in Pascal, it has no dependencies on external libraries.
It offers:
Loading from and saving to flat text tables
Use of SQL to query the data
Copy data and schema from other datasets
Option to predefine fielddefs or create it on-the fly
Master/detail filtering
Referential integrity
Parameterized queries
ZMSQL :
http://wiki.freepascal.org/ZMSQL
Si encuentras bugs reportalos por favor, para mi es una alternativa tipo LINQ en .Net; pues LINQ precisamente lo uso para realizar filtros complejos sin volver a ejecutar SP's complejos y hacer dar cierta rapidez al programa.
Creo uno de estos días haré algo similar como lo que buscas pero en Lazarus, es muy aplicable.
También lo puedes usar con base de datos además pudieras encriptar este archivo plano si la seguridad se ve comprometida en el equipo cliente si es que es necesario mantenerlo mucho tiempo.
Saludos