Para borrar datos con un ClientDataSet debes de implementarlo de la siguiente manera, por ejemplo;
Código Delphi
[-]
with CDSClientes do
Close;
CommandText:= 'select * from clientes where cod_cliente= :cod_cliente'
Params.ParambyName('cod_cliente').AsInteger:= StrToint(txtCodCliente.text);
Open;
Delete;
end;
Cambia la sentencia SQL para elegir el registro a borrar, una vez hecho eso tienes que poner en el evento AfterDelete del CDSClientes lo siguiente;
Código Delphi
[-]
CDSClientes.ApplyUpdates(0);
Así para borrar, para insertar o modificar es igual pero en vez de DELETE pon INSERT para insertar y EDIT para borrar, luego tienes que llamar al POST y haber puesto en el evento CDSClientes.AfterPost, lo mismo que antes, es decir:
Código Delphi
[-]
CDSClientes.ApplyUpdates(0);
Pruebalo, tiene que funcionarte.
Suerte