![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
No es distinta la parte de código entre IBX y FIB, esta última rutina la creé para hacer la inserción desde otra transacción. El rollback que hago ahí es de la transacción que controla el DataSet de movimientos, para volver a abrir las tablas con los datos actualizado. El rollback que va en el except es el de la transacción T.
Muchas gracias por tu atención duilioisola. Un saúdo
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) |
|
#2
|
||||
|
||||
|
Vale,
Postea el código de AbrirTablas. Si la inserción y el selct están en dos transacciones diferentes, nunca se verán. Código:
{Abro transacciones}
T1.StartTransaction
T2.StartTransaction
{Hago una cosa en cada una}
T2.Insertarcampos
T1.Select <------ Topdavía no se ha enterado de lo de T2
{Refresco la transaccion}
T1.Commit
T1.StartTransaction <------ Ahora sabe lo de T2
{Ahora ya veo lo que haya hecho T2}
T1.Select
{Cierro transacciones}
T1.Commit
T2.Commit
Si trabajas con mas de una transacción también deberás refrescarla.
Última edición por duilioisola fecha: 29-01-2008 a las 15:11:04. |
|
#3
|
||||
|
||||
|
Hola duilioisola, gracias por tu atención, pero creo que no has entendido bien mi consulta, el último bloque de código, al que te refieres, es una simple prueba que hice para ver que pasaba si hacía la inserción en una transacción distinta.
Lo que hago en AbrirTablas es simplemente eso, reabrir los DataSet necesarios tras la finalización de una transacción. Y lo que hago en el último fragmento de código es lo siguiente. Código:
{Abro las transacciones}
T.StarTransaction //DmDatos.IBTrFac ya está abierta
{Inserto los valores}
T.InsertarCampos //El select lo tengo realizado con anterioridad
{Finalizo transacciones}
T.Commit
dmDatos.IBTrFac.Rollback //No se realizó ningun cambio en esta transacción, hago Rollback para finalizarla, daría lo mismo hacer commit;
{Reabro los DataSet para ver los últimos registros insertados}
AbrirTablas
¿Puede tener algo que ver con las propiedades de la transacción y que esté leyendo algo que fué modificado con anterioridad?, pero en caso hacer un insert desde otro lado, ahí si me actualiza bien la clave. Lo tengo solucionado finalizando y volviendo a inciar la transacción antes del insert, pero lo que me extraña es que con insert si funciona bien, por lo que me gustaría saber a que era debido este comportamiento. Un saúdo y gracias por la ayuda.
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) Última edición por Ivanzinho fecha: 29-01-2008 a las 16:09:10. |
|
#4
|
||||
|
||||
|
Cambié las propiedades de IBTransaction de SnapShot a Read Commited y así si lo hace bien
![]() , que alivio, ya se por qué era , en el caso del insert lo hacía bien, pero voy a explicar el por qué.Cuando se hacía un insert tampoco tenía en cuenta las inserciones hechas desde otras transacciones, por lo que daba una violación de clave primaria, pero este error era tratado en el except y se resolvia de manera transparente, ya que se hacía un rollback (por lo tanto se iniciaba una nueva transacción) y se intentaba de nuevo la inserción, funcionando esta vez la inserción correctamente, puesto que la transacción estaba actualizada. Entono el mea culpa y le devuelvo la reputación a IBX , el problema era que se me paso poner la transacción como Read Commited. Volveré a comprobar los resultados de las inserciones masivas, ya que de esta manera los resultados mejorarán para IBX.Muchas gracias por vuestro interes, sobre todo a duilioisola. En caso de que quede alguna duda no duden en preguntar. Un saúdo
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) |
|
#5
|
||||
|
||||
|
Cita:
Hasta luego. ![]() pd. ¿cuales fueron los resultados de tus mediciones?
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#6
|
||||
|
||||
|
Cita:
![]() , lo acabo de responder en mi post anterior, pero de todas maneras muchas gracias por la respuesta. Pena que no Hubiese un menor desfase horario, ya que me ahorrabas unos cuantos dolores de cabeza . Lo dicho, graciasEn cuanto a los resultados de las mediciones los volveré a realizar y cuando los tenga los posteo aquí. Un saúdo.
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) |
|
#7
|
|||
|
|||
|
chicos soy nuevo aca bueno ni tan nuevo por que siempre veo los foros en los que muchas de mis dudas son esclarecidas ahora tengo una
como inicio un foro con un problemita que tengo? les agradecere responder pronto saludos CJMATADOR |
|
#8
|
||||
|
||||
|
Bueno, pues bienvenido al ClubDelphi.
En serio, creo que no has leído los foros lo suficiente, si no, seguro ya habrías leído la Guía de estiloPara iniciar un nuevo hilo, ve al foro que corresponde de acuerdo al tema de tu pregunta, y buscá el botón "Nuevo Hilo", no sin antes leer la guía de estilo. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Funcionamiento del StoredProc | carlosegs11 | SQL | 4 | 08-05-2007 19:39:16 |
| funcionamiento del RSA | gulder | Varios | 2 | 22-04-2007 00:43:45 |
| ...funcionamiento del gobierno.... | Jure | Humor | 0 | 17-11-2004 22:43:34 |
| Funcionamiento de BatchMove | Tecnic2 | Conexión con bases de datos | 2 | 07-09-2004 10:34:39 |
| Funcionamiento de un BDLookupComboBox | TIKIMORE | OOP | 4 | 07-05-2003 16:13:49 |
|