Pues....
Me preguntaba si es posible con FWH lograr alguna forma de rollback al almacenar _ en varias tablas, de modo de que si en el proceso algo sucede, revertir la operación y garantizar integridad referencial.
O si no hay otra que usar ADS o cualquier otro cliente/servidor
No pretendo garantizar que siempre se graben los datos, ni que el software se vuelva "magicamente" cliente/servidor, pero que si se produce una colisión o cualquier cosa que impida guardar un dato en parte de un proceso de grabación, se produzca un rollback y se cancele el ingreso, de modo de avisar al operador que la operación no puede ser hecha.
Es preferible que algo no se grabe a que se grabe por la mitad... no?
Quizá mi pregunta sea un disparate, (de hecho soy algo rebuznante en la pregunta) pero... hay funciones de FWH y/o [x]Harbour que combinadas puedan ir en esta dirección?
Se puede implementar algo así en el futuro en FWH?
Apreciaré ser desasnado al respecto.
Implementar RollBack para garantizar integridad referencial
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Implementar RollBack para garantizar integridad referencial
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
Jose...
Yo no pediria re-inventar la rueda...
Los sistemas transaccionales llegaron antes que nosotros a este ruedo...
En SQL y cliente/servidor, todo funcina perfecto con eso.
Nosotros desde que _ a cliente/servidor ( primero con ADS y luego M$SQL-Server ) nunca mas un transaccion quedo a medio camino.
Saludos
Yo no pediria re-inventar la rueda...
Los sistemas transaccionales llegaron antes que nosotros a este ruedo...
En SQL y cliente/servidor, todo funcina perfecto con eso.
Nosotros desde que _ a cliente/servidor ( primero con ADS y luego M$SQL-Server ) nunca mas un transaccion quedo a medio camino.
Saludos
Julio Gonzalez V.
RANDOM S.A.
SISTEMICA S.A.
RANDOM S.A.
SISTEMICA S.A.
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Comprendo, y de hecho, en enero tendré que implementar para un cliente un sistema que ahora está en arquitectura distribuída, en cliente/servidor con el fin de dar las garantías necesarias a los datos, para lo cual adquirirán ADS.dbzap wrote:Jose...
Yo no pediria re-inventar la rueda...
Los sistemas transaccionales llegaron antes que nosotros a este ruedo...
En SQL y cliente/servidor, todo funcina perfecto con eso.
Nosotros desde que _ a cliente/servidor ( primero con ADS y luego M$SQL-Server ) nunca mas un transaccion quedo a medio camino.
Saludos
El tema es que muchos softs pequeños, no son vendibles con ADS o pagando MySQL.
Es para esta clase de software para la que sería bueno poder implementar funciones de rollback y así al menos cuidar la integridad referencial y permitir al usuario reingresar un dato que no pudo grabarse a posteriori, sin necesidad de que el programador tenga que ir a limpiar los datos que se grabaron por la mitad para restaurar la integridad referencial.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
Tal como dice Félix, creo que con la clase TDBF de Manuel Expósito podrías disponer ROLLBACK.jose_murugosa wrote:Comprendo, y de hecho, en enero tendré que implementar para un cliente un sistema que ahora está en arquitectura distribuída, en cliente/servidor con el fin de dar las garantías necesarias a los datos, para lo cual adquirirán ADS.dbzap wrote:Jose...
Yo no pediria re-inventar la rueda...
Los sistemas transaccionales llegaron antes que nosotros a este ruedo...
En SQL y cliente/servidor, todo funcina perfecto con eso.
Nosotros desde que _ a cliente/servidor ( primero con ADS y luego M$SQL-Server ) nunca mas un transaccion quedo a medio camino.
Saludos
El tema es que muchos softs pequeños, no son vendibles con ADS o pagando MySQL.
Es para esta clase de software para la que sería bueno poder implementar funciones de rollback y así al menos cuidar la integridad referencial y permitir al usuario reingresar un dato que no pudo grabarse a posteriori, sin necesidad de que el programador tenga que ir a limpiar los datos que se grabaron por la mitad para restaurar la integridad referencial.
Podría ser algo así:
If oTDBFperson:Save() .and. ;
oTDBFdomicilio:Save() .and. ;
oTDBFfacturas:Save()
MsgAlert("Ea", "Soy el mejor" )
Else
oTDBFperson:RollBack():Save()
oTDBFdomicilio:RollBack():Save()
oTDBFfacturas:RollBack():Save()
MsgAlert("Ea", "No pude grabar" )
EndIf
Saludos
Carlos G.
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Felix y Carlos, Gracias por la información, procuraré obtener la clase y probarla, gracias desde ya .FiveWiDi wrote:Tal como dice Félix, creo que con la clase TDBF de Manuel Expósito podrías disponer ROLLBACK.jose_murugosa wrote:Comprendo, y de hecho, en enero tendré que implementar para un cliente un sistema que ahora está en arquitectura distribuída, en cliente/servidor con el fin de dar las garantías necesarias a los datos, para lo cual adquirirán ADS.dbzap wrote:Jose...
Yo no pediria re-inventar la rueda...
Los sistemas transaccionales llegaron antes que nosotros a este ruedo...
En SQL y cliente/servidor, todo funcina perfecto con eso.
Nosotros desde que _ a cliente/servidor ( primero con ADS y luego M$SQL-Server ) nunca mas un transaccion quedo a medio camino.
Saludos
El tema es que muchos softs pequeños, no son vendibles con ADS o pagando MySQL.
Es para esta clase de software para la que sería bueno poder implementar funciones de rollback y así al menos cuidar la integridad referencial y permitir al usuario reingresar un dato que no pudo grabarse a posteriori, sin necesidad de que el programador tenga que ir a limpiar los datos que se grabaron por la mitad para restaurar la integridad referencial.
Podría ser algo así:
If oTDBFperson:Save() .and. ;
oTDBFdomicilio:Save() .and. ;
oTDBFfacturas:Save()
MsgAlert("Ea", "Soy el mejor" )
Else
oTDBFperson:RollBack():Save()
oTDBFdomicilio:RollBack():Save()
oTDBFfacturas:RollBack():Save()
MsgAlert("Ea", "No pude grabar" )
EndIf
Saludos
Carlos G.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
Como yo siempre he dicho.... donde este un buen ADS que se quite todo lo demas:
AdsBeginTransaction()
....
....
Append.....
Replaces......
commites.....
......
.....
AdsCommitTransaction()
Si el programa se "rompe" entre un ADSBeginTransaction() y un ADSCommitTransaction() el Rollback se hace automaticamente.
Tambien es posible llamar directamente a AdsRollBackTransaction()
Nos vemos en Santiago de Chile el dia 13 de Octubre
Buenos Aires del 3 al 5 de Noviembre.
AdsBeginTransaction()
....
....
Append.....
Replaces......
commites.....
......
.....
AdsCommitTransaction()
Si el programa se "rompe" entre un ADSBeginTransaction() y un ADSCommitTransaction() el Rollback se hace automaticamente.
Tambien es posible llamar directamente a AdsRollBackTransaction()
Nos vemos en Santiago de Chile el dia 13 de Octubre
Buenos Aires del 3 al 5 de Noviembre.
Saludos
R.F.
R.F.
Rene,RF wrote:Como yo siempre he dicho.... donde este un buen ADS que se quite todo lo demas:
AdsBeginTransaction()
....
....
Append.....
Replaces......
commites.....
......
.....
AdsCommitTransaction()
Si el programa se "rompe" entre un ADSBeginTransaction() y un ADSCommitTransaction() el Rollback se hace automaticamente.
Tambien es posible llamar directamente a AdsRollBackTransaction()
Nos vemos en Santiago de Chile el dia 13 de Octubre
Buenos Aires del 3 al 5 de Noviembre.
Buscando integridad, SQL (aunque yo de eso sólo se escribir su nombre).
Hay que tener en cuenta lo que dice Jose:
"El tema es que muchos softs pequeños, no son vendibles con ADS o pagando MySQL. "
Para estos soft pequeños que solución les darías?
Saludos
Carlos G.
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Hola
una solucion podria ser SQLite, mira productos cono RealSQL (REALBASIC) han desarrollado sobre SQLite, pongo SQLlite por que es peque~no, ahora si quieres algo robusto de verdad (comparado con Oracle) ademas de gratis lo tienes a Postgres
solo una opinion personal
saludos
Marcelo
una solucion podria ser SQLite, mira productos cono RealSQL (REALBASIC) han desarrollado sobre SQLite, pongo SQLlite por que es peque~no, ahora si quieres algo robusto de verdad (comparado con Oracle) ademas de gratis lo tienes a Postgres
solo una opinion personal
saludos
Marcelo
FiveWiDi wrote:Rene,RF wrote:Como yo siempre he dicho.... donde este un buen ADS que se quite todo lo demas:
AdsBeginTransaction()
....
....
Append.....
Replaces......
commites.....
......
.....
AdsCommitTransaction()
Si el programa se "rompe" entre un ADSBeginTransaction() y un ADSCommitTransaction() el Rollback se hace automaticamente.
Tambien es posible llamar directamente a AdsRollBackTransaction()
Nos vemos en Santiago de Chile el dia 13 de Octubre
Buenos Aires del 3 al 5 de Noviembre.
Buscando integridad, SQL (aunque yo de eso sólo se escribir su nombre).
Hay que tener en cuenta lo que dice Jose:
"El tema es que muchos softs pequeños, no son vendibles con ADS o pagando MySQL. "
Para estos soft pequeños que solución les darías?
Saludos
Carlos G.