Procesos y Transacciones


([N2] Guille. Vecchio Orta) #1

Siguiendo con las consultas que tan amablemente me responden:

Dado el proceso de importación detallado en la imagen y teniendo en cuenta la transaccionabilidad del servidor, si ocurriese algún error dentro del "For", ¿se deshacen todas las lineas importadas hasta ese momento o las líneas que importó se mantienen?

Suponiendo que se deshagan todas las operaciones contenidas en dicho proceso, ¿como lanzo un proceso tantas veces como registros tenga con el fin de que, si ocurriese algún error, no se perdiera toda la operación?

Gracias por adelantado,

[attachment=22606,1750]




([N4] Fran) #2

Buenas tardes:
.
Se desharían todas las operaciones, ya que todas están en la misma transacción.
.
Para que no se deshiciesen todas, tendrías que llamar a otro proceso (pasándole la línea leida como parámetro) y que este proceso realizase la escritura en disco... pero ojo, que esto sería peor: Ahora si se corta, repites la importación del fichero entero y arreglado. En caso contrario, tendrías que ver cuantas líneas se han grabado y borrarlas a mano o eliminarlas del fichero para que no las duplique al volver a importar.
.
Un saludo,
.
Fran.
EfeUno Consultores de Gestión y Software, S.L.
www.efeuno.org


([N2] Guille. Vecchio Orta) #3

Fran, gracias por tu respuesta.

Ahora bien, me generaste otra duda:

Si tengo un campo con un índice que no me permita duplicados en la tabla, al volver a importar no tendría que eliminar las líneas anteriores, ¿o estoy equivocado?. Ahora bien, habría que saber si esta importación parcial no tarda mas tiempo que realizar la importación del lote completo (ya que no habría posibilidad de duplicados).

¿Qué opinás?

Saludos cordiales,


([N1] Pepeto) #4

@Guille

Cierto, si creas un indice de clave única, evitarias la repeticion, pero tendrias que comprobar en cada linea leida si el registro ya existe en la tabla correspondiente y solo despues de dicha comprobación, dar el alta

Con esta comprobación, el proceso de importación se volveria algo mas lento, logicamente.

un saludo
José Luis
http://www.ascsl.com