FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cuantos TIBDataSet estan abiertos
Buenas noches, de que manera se podria chequear cuantos tibdataset estan activos. EL problema radica en que estoy utilizando un transaction y cada vez que hago un post o un delete ejecuto un dm.ibtransaction.commintretaing, pero resulta que en una aplicacion cliente/servidorta que no se cierra dicha transaction no podra ser vizualizada por los demas usuarios. Y lo que he leido es que se debe utilizar un commit, pero al realizar el commit me va a cerrar todos los tibdataset que estaban abiertos y eso me podria traer problemas. O de que manera se puede resolver que cuando se modifica en un pc se pueda visualizar de una vez en los demas pc. Tulizo ibx, delphi 7 y firebird 1.5. Gracias por su atencion....
|
#2
|
|||
|
|||
Suelo trabajar con ibTransaction y commitretaining y no tengo ese problema (creo). ¿Qué parameters usas para la transacción? yo uso estos:
Código:
read_committed rec_version nowait Saludos. |
#3
|
||||
|
||||
Hola, el componente IBDataBase tiene dos propiedades heredadas de TCustomConnection, que son DataSetCount y DataSets[x].
Asi que para saber los datasets asociados a un IBDatabase, podría servir esto:
NOTA: Si compilas con la directiva "Complete boolean eval" {$B} activada, usa mejor este codigo para prevenir errores:
__________________
Progress Openedge https://abevoelker.com/progress_open...dered_harmful/ Delphi forever... Última edición por defcon1_es fecha: 13-11-2008 a las 12:54:57. |
#4
|
||||
|
||||
Ok, gracias defcon1_es es justo lo que necesito, esto servira para solucionar el uso del commitretaing, pero el caso es que un usuario modifica un registro en un pc, otro usuario en otra pc vea los cambios realizados sin ningun problema, o de que manera se podria hacer esto o como seria el deber ser del commitretaing para evitar el lock dead de un registro.
Gracias afxe, me podrias dar mas detalles para tratar de solucionar mi caso segun tu aplicacion, ya que tengo commitretaing despues de un post y un delete y quisira plainificar esos cambios o evaluar cual es la mejor opcion para soucionar esta situacion. Gracias por su valioso tiempo... |
#5
|
|||
|
|||
No hay mucho más que decir... Por ejemplo, creo un form para dar de alta un cliente, pongo un TIBTransaction asociándolo con el TIBDatabase correspondienet (normalmente solo uno en un TDataModule compartido por todos los forms) y el TIBDataSet correspondiente con la propiedad transaction apuntando al TIBTransaction del propio form, no el que tenga el TIBDatabase por defecto. Solicito todos los campos y cuando pulsa el botón grabar haces un commit al TIBTransaction creado en el form. Se comiteará y cerraran todas las tablas del form asociadas a esa transacción, insisto, sólo las tablas de ese formulario, pero si hay más dataset abiertos en otros forms activos no se verán afectados. En síntesis: cada formulario abre y cierra su propia transacción.
Saludos. |
#6
|
||||
|
||||
Gracias por tu valioso tiempo. Es decir, tendria que modificar cada formulario para agregar una TIBTransaction y asociarla con el TIBdatabase del TDataModule y al momento de hacer una modificacion sobre las tablas involucradas (en dicho formulario), se debe hacer asignar en el TIBDataBase la TIBTransaction del formulario se inicia la transaction y luego del post se hace un commit a la trasaction del formulario:
Luego realizar estos cambios sobre cada proceso y/o formulario ? De todas maneras realizare lso cambios a ver como funciona Nota: EL proyecto trata sobre un sistema de facturacion y en el ejemplo arriba estoy guardando el numero de la factura. Utilizo Delhpi 7, IBX, FireBird 1.5. Gracias nuevamente.... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Obtener formularios abiertos | Bauhaus1975 | Varios | 4 | 09-10-2008 17:32:17 |
Saber que archivos estan abiertos | StartKill | Varios | 1 | 30-09-2005 17:05:25 |
Que programas tengo abiertos? | Novás | Varios | 2 | 15-06-2005 16:17:40 |
Problemas con 2 delphis abiertos | Mauro.NET | Varios | 3 | 14-06-2005 07:15:09 |
Saber si hay Querys abiertos | ramonibk | Varios | 4 | 26-11-2004 16:06:10 |
|