![]() |
Rollback Transaction con Tablas Cobol
Estimados amigos de ClubDelphi, acudo una vez más a su generosa ayuda porque tengo una cuestión que no logro resolver.
Estoy desarrollando una aplicación para una empresa que fabrica máquinas industriales. Este sistema trabaja sobre SQL Server 2005 y además requiere leer y escribir algunos datos sobre tablas .DAT, que pertenecen a un sistema de gestión que posee la empresa hecho en COBOL bajo UNIX. En un principio, trabaje para encontrar una solución para realizar una conexión con estas tablas - en adelante "Tablas COBOL" -, y después de cansarme de "googlear" y no encontrar nada nativo (sumado al escaso tiempo que tenía), termine por crear un archivo en Access y vincular estas tablas .DAT, a través de sus archivos .XFD (los cuales contienen la estructura). Para leer estas tablas, utilizo un ADOConnection que "linkea" con este archivo Access. Aquí es donde surge el problema. En uno de mis procedimientos necesito generar una Orden de Servicio, que requiere la recolección de ciertos datos y la inserción, tanto en SQL Server como en las tablas COBOL. Esto lo enmarco dentro de una transacción que me controla el proceso y realiza un Rollback frente a la presencia de un error. El inconveniente surge debido a que no es posible - al menos no he podido - hacer un Rollback sobre las tablas COBOL; y en consecuencia los datos entre las tablas SQL y las de COBOL quedan inconsistentes. He intentado hacer un roolback tomando la conexión con Access y no lo he conseguido. Una vez que graba en las tablas los datos son físicos y no pueden deshacerse. Alguien tiene idea de que forma se podría solucionar este inconveniente? Si no entienden alguna parte, pregunten y se los explico de nuevo. Desde ya muchas gracias. |
hay varios conectores ODBC para cobol pero son de paga, cuestion de que los veas a lo mejor merece la pena comprarlos
|
luis, muchas gracias por tu respuesta.
Me podrías pasar algún nombre para probarlos. Con estos componentes puedo realizar Rollbacks como si usara una transacción en sql server? Nuevamente gracias por tu respuesta. |
Primero de todo: ¿que cobol utilizas (RM/cobol, Microfocus, Acucobol, Fujitsu cobol........?
En base a eso, la respuesta. |
avmm2004 he aquí la respuesta a tu pregunta: AcuCobol
Muchas gracias y espero puedas darme una mano Saludos |
En acucobol tiene dos productos que te ¿solucionan ? el problema.
El primero es AcuOdbc que te permite grabar ficheros .dat de cobol programando desde delphi, visual studio.... etc. (como habras supuesto es un odbc). El otro producto es acu4gl para (oracle, sysbase, sql server, ....) y este producto te permite grabar datos de bases de datos relacionales desde lenguaje cobol. El producto acu4gl tiene sentencias start transaction, commit, rollback ..... incorporadas al lenguaje cobol. Yo los utilize como parte de mi estrategia para pasarme de acucobol a delphi y funcionaron bien. Acuodbc es sencillo y acu4gl es mas complicado y requiere algun cambio en tus programas cobol. No se si esto te ayuda, si no, hazmelo saber. Por supuesto ambos productos son de pago y los puedes encontrar en la web de acucorp.com (http://www.acucorp.com |
La franja horaria es GMT +2. Ahora son las 21:09:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi