Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-03-2014
Leopard2 Leopard2 is offline
Miembro
NULL
 
Registrado: may 2012
Posts: 39
Poder: 0
Leopard2 Va por buen camino
Consulta de principiante por Transactions

Hola, estoy trabajando con firebird 2.5 en Delphi y tengo una duda sobre las IBtransactions, la pregunta es si en una rutina donde tengo 3 bases, al grabar tengo que hacer un llamado a transaction por cada base o se puede hacer un transaction por las 3 ? y en el caso de la bases maestro/detalle basta con hacer un transaction al maestro o hay que hacer a ambos (maestro y detalle)
asi es como esta ahora, un transaction por cada base :

Cita:
Try
Masterdb.Repuestos.Post;
Masterdb.IBTrsc.CommitRetaining;
Except
Masterdb.Repuestos.Cancel;
Masterdb.IBTrsc.RollbackRetaining;
ShowMessage('!ERROR! No se grabo los datos del Repuesto ');
End;
.
.
.
.
try
ExecQuery;
Masterdb.IBTrsc.CommitRetaining;
except
on E: Exception do
begin
Masterdb.IBTrsc.RollbackRetaining;
Application.MessageBox( PChar( E.Message ), 'Error, NO se grabo el Movimiento ', MB_ICONSTOP );
end;
Saludos y gracias por cualquier ayuda.
Responder Con Cita
  #2  
Antiguo 14-03-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿DBX, IBX, ADO, etc.?
Responder Con Cita
  #3  
Antiguo 14-03-2014
Leopard2 Leopard2 is offline
Miembro
NULL
 
Registrado: may 2012
Posts: 39
Poder: 0
Leopard2 Va por buen camino
IBX.
saludos
Responder Con Cita
  #4  
Antiguo 14-03-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces, en un datamodule, pones un IBDatabase y un IBTransaction, ambos relacionados entre sí, y se acabó, te olvidas de las transacciones.
Tan solo recuerda que tras hacer un .post debes hacer un transaction.commit / commitretaining en el evento afterpost del query.
Responder Con Cita
  #5  
Antiguo 15-03-2014
Leopard2 Leopard2 is offline
Miembro
NULL
 
Registrado: may 2012
Posts: 39
Poder: 0
Leopard2 Va por buen camino
Ok. gracias por la respuesta pero me queda la duda de como manejar las excepciones en el ejemplo que tu planteas ya que en forma manual hacia el rollback y enviaba un mensaje de aviso :

Cita:
Try
Masterdb.Repuestos.Post;
Masterdb.IBTrsc.CommitRetaining;
Except
Masterdb.Repuestos.Cancel;
Masterdb.IBTrsc.RollbackRetaining;
ShowMessage('!ERROR! No se grabo los datos del Repuesto ');
End;
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hacer Transactions con ADO+MyODBC ? tcp_ip_es MySQL 1 19-12-2007 09:42:55
dbexpress ADO Transactions JOTAAB Conexión con bases de datos 0 28-04-2006 17:37:30
Transactions Firebird Abel Garcia Firebird e Interbase 2 31-01-2006 21:46:57
wait transactions con DBE Ivanzinho Firebird e Interbase 3 15-10-2005 16:03:52


La franja horaria es GMT +2. Ahora son las 15:45:10.


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