Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-04-2006
Arturo Arturo is offline
Miembro
 
Registrado: sep 2004
Posts: 91
Poder: 21
Arturo Va por buen camino
como se manajen las transacciones en maestro/detalle mysql.

saludos club,
Tengo una duda de como manejar las transacciones desde delphi, en mi caso debo de usar algunas tablas en maestro/detalle.
Con zeos lo logro usando componentes ztables o zQuery y un Zupdate la cuestion es que al usar transacciones seran anididas por que .- primero comienzo el maester y voy agregando registros a mi detalle y al final puedo grabar los cambio.

Mi pregunta es, insercion en el detalle debo de comenzar una transaccion o en su caso como juega el papel las transacciones alguien podria explicar este detalle:
Start transaccion -Maestro
Start transaccion -detalle
Start transaccion -detalle
commit

gracias
Responder Con Cita
  #2  
Antiguo 05-04-2006
Avatar de Guerth Castro G
Guerth Castro G Guerth Castro G is offline
Registrado
 
Registrado: feb 2006
Ubicación: San Ramón, Costa Rica
Posts: 2
Poder: 0
Guerth Castro G Va por buen camino
Creo que podrias intentar con el objeto de zeos que sirve para conectar a la base de datos este tiene un procedimientoo funcion que inicia la transaccion y permite hacer el commit, ademas permite hacer el rollback si se da algun problema, siempre y cuando estes dentro de un try...except..
por cierto algunas verciones de mysql como la 4.1.xx no soportan transacciones segun lei en la pagina oficial la vercion 5.1.0 ya soporta hasta procedimientos almacenados pero no lo he probado aun

Última edición por Guerth Castro G fecha: 05-04-2006 a las 20:04:39.
Responder Con Cita
  #3  
Antiguo 06-04-2006
Arturo Arturo is offline
Miembro
 
Registrado: sep 2004
Posts: 91
Poder: 21
Arturo Va por buen camino
bueno, busque un fragmento que menciona el uso del try y exception esto lo obtuve de los componenetes ado:
Código PHP:
Y:integer;
begin
Y
:=Adooneccition.Begintrans;
try
 
hago updatedeleteinsert
 Adooneccition
.committrans;
except
on E
:Exception do Adooneccition.rollbacktrans;
end
mi pregunta es: este codigo en que momento se usa o en que evento del componente lo coloco, se entiende que si agrego un registro de inmediado se graba (committrans) pero si falla algo se deshace el cambio. yo uso botones para indicarle que sea un nuevo registro, modificar y guardar, ahora como le puedo agregar este codigo. para firebird en el evento afterPost puedo hacer esto transaccion.commitTrans;
Pero para ado o seos al usar mysql debemos comenzar la transaccion
me puede ayudar en resolver este misterio gracias. les agradesco
Responder Con Cita
  #4  
Antiguo 08-04-2006
Arturo Arturo is offline
Miembro
 
Registrado: sep 2004
Posts: 91
Poder: 21
Arturo Va por buen camino
como manejar las transacciones explicitas para mysql

hola de nuevo, bueno como manejar las transacciones explicitas, ya que con mysql es el uso que se debe de aplicar.

podrian contestarme si es correcto lo que estoy haciendo, que en cada evento afterpost, onnewrecord, beforeedit, del componente ztable le agrege este codigo:

conexion.start transaction;
try
conexion.commit
except
on E:exception do conexion.Rollback;
end;
Y para el de cancelar afterCAncel: conexion.start transaction;
conexion.rolback;

Hasta ahorita no he encontrado en donde colocar el codigo para indicarle al delphi que voy a empezar una transaccion. Por cierto que los ejemplo explica el bloque con un try.. exception pero no mencionan nada en donde corresponde.

muchas gracias disculpen pero no he encontrado nada al respecto podrian ayudarme club.
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
¿Como poner dos TIBQuery como maestro/ Detalle? VRO Firebird e Interbase 8 23-02-2008 15:17:25
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes akinom38 Varios 1 09-11-2007 20:27:44
Como inicar un rep. maestro/detalle en una página nueva si el espacio es insuficiente PabloRamos Impresión 2 30-06-2005 21:40:16
Como hago un campo calculado en un maestro detalle??? Bitbanner Conexión con bases de datos 1 04-02-2005 23:03:41
ClientDataSet Maestro Detalle como los relaciono ASAPLTDA Conexión con bases de datos 1 30-01-2005 00:07:48


La franja horaria es GMT +2. Ahora son las 01:24:55.


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