Clipper/FiveWin - modelo transaccional

 
Vista:

modelo transaccional

Publicado por Rosy (18 intervenciones) el 08/05/2001 16:21:31
Si amigo Skaigualker, me referia precisamente a lo que tu me responden en tu nota. Seria bueno que aportaramos idea en este foro.
Creo que no debe ser tan dificil de programar. Como lo haria yo, rescatando la idea que tu das de utilizar un archivo de transaccion, el cual tendria 3 campos,
Campo 1 : Tipo de transaccion ( Ingreso, modificacion, eliminacion)
Campo 2 : Nombre del Archivo sobre el cual se realizó la operación
Campo 3 : La clave a través de la cual se identifica el registro

Cada vez se se inicia una transacción, se comienza a llenar este archivo y al finalizar la transaccion, se deben borrar todos los registros.
Cada vez que parte el sistema, una de las primeras cosas que debe hacer, es chequear este archivo, si tiene datos, es pq hubo algún problema y la operación no se completo con éxito. Entonces se recorre todo el archivo transaccion analizando cada registro, es decir, si el campo 1 = Ingreso, entonces podriamos accesar el archivo a traves del campo 2 y campo 3 y hacer un DELETE. Ahora si el campo 1 = Elimincacion, entonces se hace un DBRECALL, pero si el campo 1 = modificacion, bueno aqui lo unico que se me ocurre es mantener un archivo adicional con los datos originales.

Me gustaria conocer comentarios sobre esta rutina.

Saludos a todos
Valparaiso, Chile
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:modelo transaccional

Publicado por Armando Estrada Bucio (95 intervenciones) el 08/05/2001 16:51:23
Saludos Rosy Gallardo:

Dale una mirada piadosa a la clase
BEGIN SEQUENCE
END

de clipper 5.3

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:modelo transaccional

Publicado por Rosy (18 intervenciones) el 08/05/2001 18:47:15
Gracias Armando por responder, pero podrias ser un poquito mas especifico pq estuve echando una mirada a los manuales y lo unico que encontré sobre BEGIN SEQUENCE fue un par de hojas y que en definitiva no dicen nada al respecto del modelo transaccional. Hay algun Ejemplo ?
Rosy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:modelo transaccional

Publicado por Armando Estrada Bucio (95 intervenciones) el 09/05/2001 02:58:58
Salud y larga vida Rosy:

Lamento informarte que no cuento con ejemplos de lo que buscas, sin embargo en el manual y en las NG vienen 2 escuetos ejemplos, espero que te sirvan.

Siempre es un placer tratar con el género femenino.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:modelo transaccional

Publicado por skaigualker (210 intervenciones) el 09/05/2001 09:24:14
Creo que Begin Sequence no es lo que estamos buscando. Es una estructura para manejo de errores y para conseguir que si una instruccion da un error no se ejecuten las siguientes, pero de lo que aqui hablamos es de recuperar el estado inicial de las bases de datos antes del error, para no heredar corrupciones de datos. Si nos serviria para invocar al proceso de restauracion.

El sistema que propones Rosy me parece el acertado. Solo matizaria 2 cosas:

1º) Para poder restaurar bien los datos, el archivo habria que procesar en sentido inverso, es decir desde el final hacia el inicio. En caso contrario y en el caso que 1 mismo registro hubiera tenido 2 modificaciones no restaurarias el estado inicial sino el estado despues de la 1ª modificacion.

2º) En caso de modificacion deberias apuntar tambien el campo modificado o en su defecto guardar el registro original entero.-

Un saludo.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:modelo transaccional

Publicado por skaigualker (210 intervenciones) el 10/05/2001 08:13:12
Continuo dandole vueltas al asunto, y pienso que puedes encontrarte con otros problemas en caso que tus programas corran en entorno de red, con diferentes usuarios trabajando simultaneamente. En este caso creo que deberias limitar la restauracion a un usuario administrador y previamente deberias asegurarte que todos los usuarios esten fuera del programa.

Como ves el tema es bastante complicado, y tan solo estamos empezando.

Saludos.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:modelo transaccional

Publicado por Rosy (18 intervenciones) el 10/05/2001 14:56:23
El tema del entorno de Red no me preocupa pues ya lo tengo controlado. Utilizo un archivo "semaforo" el cual me permite controlar que mientras yo esté utilizando un registro ningun otro usuario lo use.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:modelo transaccional

Publicado por Dario (1 intervención) el 11/05/2001 23:47:56
El tema del modelo transaccional es simple, pero el problema es la cantidad de recursos que se utilizan para poder implementarlos. Estos archivos transaccionales utilizan un esquema parecido al detallado anteriormente pero si se usa en entorno de red estos crecen en registros mas que los originales. por lo cual en este tipo de modelo se debe manejar con cantidad de iteraciones para no hacer que crezcan muchisimo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:modelo transaccional

Publicado por Arturo (4 intervenciones) el 12/05/2001 19:11:31
He realizado sistemas que manejan transacciones pero he dejado de utilizar los *.dbf y *.ntx para utilizar bases de datos cliente servidor que ya implementan las transacciones mas o menos lo utilizo de la siguiente manera.

Begin Sequence
N_XTranOn ()
Append Blank
Replace ....
Delete ....
N_XTranOff ()
Recover
N_XTranCan ()
End Sequence

Yo personalmete he utilizado para hacer aplicaciones lo siguiente
Novell 4.11
Btrieve ( Base de Batos )
Clipper 5.3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar