Para que todos los cambios hechos sobre el ClientDataSet se guarden en la base de datos, debes llamar a su método ApplyUpdates. En cuanto al DataSetProvider, conviene que mantengas su propiedad ResolveToDataSet en False; así cada alta, baja o cambio de registro lo traducirá en la respectiva instrucción SQL que emitirá al servidor usando de forma directa el componente conexión (en tu caso el ADOConnection).
No olvides revisar también las propiedades UpdateMode y ProviderFlags. En la ayuda y en este foro hay bastante material sobre el tema.
Saludos.