Nunca he tenido necesidad de realizar este "truco", pero mientras nadie te indique una fórmula mejor, pienso que puede servirte esta rutina.
También creo que sería bueno que pensases en una SQL que limitase la lectura, porque siempre hay alguna condición que justifique la extracción de registros. Creo que nunca tendrás necesidad de leer toda la base de datos (bien por fechas, por secciones, por cliente, por proveedor... un algo que te permita hace una cláusula "WHERE")