Gracias Miguel por contestar. Creo que no lo estás entendiendo.
Es un problema del motor y la conexión con el driver SQL, no tiene nada que ver con la aplicación en si.
Todo lko que realizas en el cursor, se hace perfectamente, pero al dar un error SQL, esa transacción se queda "colgada", y a partir de ahí, no lleva nada al Servidor.
Es como si cuando cierras Eneboo, se hiciera en vez de un Commit un Rollback, para que lo entiendas.
Tu todo lo ves correcto, pero si consultaras las ventas desde otro puesto, no hay nada, a partir de que se produjera el error...
De ahí, el gran problema, que al menos yo tengo.
Espero haberme explicado algo mejor.
Saludos.