No soy el más indicado en aconsejarte en este tema, pero por el foro se habla mucho de TClientDataset y TDatasetProvider, activando la CacheUpdates, de esta forma se consigue todo lo que quieres. Es decir, puedes usar estos objetos como si estuvieses trabajando directamente con la base de datos , pero en realidad, todos los cambios se hacen en la cache de la BBDD, hasta que no llamas al método ApplyUpdates, no se confirman todos los cambios realizados. (inserciones, borrados, actualizaciones...)
Con esto evitas tener que crear ese TGrid o TDBGrid, y sigues trabajando con la lógica normal de BBDD.
En la web de
borland tienes una información más detallada sobre estos componentes.
Espero te ayude.