Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-09-2003
Newbie Newbie is offline
Miembro
 
Registrado: jul 2003
Ubicación: Veracruz, México
Posts: 30
Poder: 0
Newbie Va por buen camino
La vista de una transacción

Hola, ké tal

Tengo una duda con respecto a las transacciones "read_commited".

Resulta que, por ejemplo, quiero dar de alta un producto en una tabla de productos que está asociada a una transacción llamada "IBTProducto".

Un dato necesario para el producto es el proveedor, mismo que se encuentra en una tabla de proveedores, asociada esta última a una transacción "IBTProveedor".

Cuando doy de alta un proveedor y guardo los datos, después doy de alta un producto surtido por ese proveedor y lo guardo, no hay problema. El problema se presenta cuando, por ejemplo, entro a la forma de productos y le doy un append a la tabla(inicia la transacción de IBTProducto), pero me doy cuenta de que el proveedor que me lo surte no está dado de alta, así que me voy a la forma de proveedores(trabajo con formas MDI) y doy de alta el proveedor(inicio y termino la transacción IBTProveedor), regreso a la forma de productos y, teoricamente, debería ver el nuevo proveedor, pero no es así.

Se me ha ocurrido que se debe a que una transacción toma una especie de "fotografía" de las tablas que se vayan involucrando durante la misma(o de la base de datos en general, cosa que encuentro bastante dudosa) pero no ve los cambios que se hagan en la base de datos mientras dura su ejecución. ¿Estoy en lo correcto? O ¿A qué se puede deber el que no vea un cambio hecho a una tabla asociada a otra transacción?

Leí un manual que me recomendó Kinobi y que por cierto encontré muy interesante, pero esto me está confundiendo bastante, ya que lo que expuse es un ejemplo teórico, pero estoy utilizando varias transacciones en mi aplicación y me podría traer problemas el no ver los cambios hechos por otras transacciones una vez que un transacción específica haya comenzado. ¿Alguna sugerencia? Estoy abierto a sus opiniones.

Muchas gracias .
Responder Con Cita
  #2  
Antiguo 08-09-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por Newbie
regreso a la forma de productos y, teoricamente, debería ver el nuevo proveedor, pero no es así.
"teóricamente" (y en la práctica) no podrás ver el nuevo proveedor, a pesar del nivel de aislamiento read_commited de la transacción, hasta que vuelvas a lanzar (abrir) la consulta que te da los proveedores que hay en tu base de datos.

Los cambios que se produzcan desde otras transacciones no se reflejan en los cursores (consultas) que tengas abiertos anteriormente. Para poder verlos, tendrás que volver a lanzar la consulta y, además, tener un nivel de aislamiento en la transacción lo suficientemente bajo como para poder verlos, es decir, read_commited.

Saludos.

Última edición por kinobi fecha: 08-09-2003 a las 09:38:38.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:30:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi