Ver Mensaje Individual
  #14  
Antiguo 04-12-2017
usuario1000 usuario1000 is offline
Miembro
 
Registrado: nov 2016
Posts: 86
Reputación: 8
usuario1000 Va por buen camino
Buenas a todos, y gracias de antemano.

Retomo este asunto porque no me queda nada claro como se puede hacer esto. He leido, he remirado y he visto videos tostonazos en youtube, pero al final nada de nada.

Tengo realizada al 99% una apicación Cliente - Servidor. Y no he utilizado nunca en toda la aplicación expresamente las transacciones y me hubiera gustado, pero no he sabido en que momento utilizarlas.

Mi aplicación funciona aproximadamente de la siguiente forma:

Para dar de alta a un proveedor llamo a un una función como por ejemplo:

resultado:= funcion.altaProveedor(nombre, apellidos, nif, domicilio. .... etc.); // esta función está dada de alta en la parte del servidor.
if resultado = true /
todo correcto se ha grabado bien.
else
"Error a la hora de grabar".


resultado := funcion.grabarOtraCosa(m, n, o,p);
if resultado = true // todo ok
else
// error.

¿Donde pongo el "startTransaction" para hacer el commit o el rollback?

Ademas la cosa se complica, cuando esa operación anterior se realiza con muchas más tablas que deben ser todas modificadas, y si falla la grabación de una, la liamos parda.

Cada vez que utiizo una función (de las anteriores), modifica la base de datos de forma instantanea, sin posibilidad de hace rollback.


Espero que se me entienda, lo que pretendo es asegurar la integridad de los datos, pero con las funciones que utilizo, una detras de otra, puede darse el caso que alguna falle y eso... la liemos.

Alguna sugerencia de como poder utilizar las transacciones aquí.

Gracias.

NOTA: Es un aplicación DATASNAP, firebird y con delphi "Berlin".
Responder Con Cita