Bueno, compañero del foro. Digamos que te supero por 2.5 veces la experiencia con ese tipo de conexión.
Yo tengo un componente que me almacena todo un recordset, o bien, dicho de otra forma, voy guardando en memoria cliente el recordset (todo lo mando a un datagrid ligado al recordset) y si lo que se ha ingresado es lo que se desea lo envío a la BD, de lo contrario, solo destruyo el recordset con todo su contenido.
Tu conexión está bien, no veo problema, el problema es la complicación para manejar una lógica que relativamente no es tan compleja.
Cuando insertas en un recordset, el que lo edita puede ir viendo los cambios, nadie más, pero cuando se guarda, ya todos lo pueden ver, el tema es saber cuando estás editando y cuando no, que tampoco debiera ser nada fuera de lo normal.