Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-11-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Thumbs up Con que componente Zeos puedo hacer Transacciones?

Hola queridos amigo del club,deseo hacer transacciones a Mysql desde Delphi 7 , pero no se que componente utilizar para eso; estoy utlizando las librerias Zeos para la conexion , consultas, insercion,etc.
He tratado de probar con todos los componentes de Zeos, pero ninguna tiene la propiedad Transaction o algun metodo que me haga esto;bueno al menos no he encontrado ni uno,he supuesto que existe algun componente porque en este Hilo ,al final hay un ejemplo.
Les agradesco de antemano su colaboracion y ayuda, aunque mejor seria si me postearan un pequeño ejemplito para poder entender mejor y ganar tiempo.
Saludos......
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 10-02-2010 a las 15:05:10.
Responder Con Cita
  #2  
Antiguo 19-11-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
quien maneja las tranzacciones es el zeos connection.

OJO, En un entorno multiusuario es un grave error colocar transacciones en los clientes. Lo mejor es dejar que el motor se encargue de ese trabajo.

Saludos.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 19-11-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Gracia Poliburro por tu respuesta;
Cita:
OJO, En un entorno multiusuario es un grave error colocar transacciones en los clientes. Lo mejor es dejar que el motor se encargue de ese trabajo.
Es muy interesante lo que comentas, pero dime como podria hacer eso que dices en el motor de BD?¿Por que es un error colocar transacciones en los clientes?...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #4  
Antiguo 21-11-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Question

Sigo con la duda...
¿Por que es un grave error colocar transacciones en los clientes en un entorno multiusuario, como lo indica el amigo Poliburro?
¿Acaso la transaccion no se ejecuta en el Servidor?
¿Cual es la diferencia o el error?
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 21-11-2008 a las 22:49:17.
Responder Con Cita
  #5  
Antiguo 22-11-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
hace tiempo tuve un problema con las transacciones con Zeos, aqui esta la forma en que se resolvio, de pronto te sirva:

http://www.clubdelphi.com/foros/showthread.php?t=56177
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #6  
Antiguo 22-11-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Question

Claro que todo sirve Eduarcol , muchas gracias por el aporte.
Pero dime cual es la diferencia entre Commit y Commit retain concretamante para entenderlo?
¿Y que opinas de lo que dice el amigo Poliburro?..
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #7  
Antiguo 22-11-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
Claro que todo sirve Eduarcol , muchas gracias por el aporte.
Pero dime cual es la diferencia entre Commit y Commit retain concretamante para entenderlo?
¿Y que opinas de lo que dice el amigo Poliburro?..
La diferencia según lo logre entender es que el commit cierra algo asi como la sesion, mientras que commit retain cierra la transacción pero deja la sesion actual activa. Igual vale para el rollback retain.

Con respecto a lo que dice el poli es mejor que el te lo explico no tengo conocimientos del caso.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 22-11-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
La diferencia según lo logre entender es que el commit cierra algo asi como la sesion, mientras que commit retain cierra la transacción pero deja la sesion actual activa. Igual vale para el rollback retain.
ok Apuntado

Solo por curiosidad ¿con que servidor te estabas conectando? Mysql,Sql server,oracle,etc
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #9  
Antiguo 22-11-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
ok Apuntado

Solo por curiosidad ¿con que servidor te estabas conectando? Mysql,Sql server,oracle,etc
Firebird 2.0 solo lo mejor
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #10  
Antiguo 22-11-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Wink

Cita:
Firebird 2.0 solo lo mejor

Gracias por el aporte amigo, heber si poliburro nos sacas de algunas dudillas que me han quedado...
Saludos.....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #11  
Antiguo 22-11-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Creo que el poli esta un poco pendiente de otras cosas , pero bueno algun dia volvera por aqui jejeje
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #12  
Antiguo 22-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por eduarcol Ver Mensaje
La diferencia según lo logre entender es que el commit cierra algo asi como la sesion, mientras que commit retain cierra la transacción pero deja la sesion actual activa. Igual vale para el rollback retain.
Sí, pero añadir que "dejar la sesión abierta", mejor dicho mantener el contexto de la transacción, consume recursos, por ello si vas a realizar una inserción masiva, o usas continuamente commitRetaining la aplicación puede volverse lenta después de trabajar con ella. Lo bueno es que los componentes de acceso (Zeos no los he mirado) normalmente realizan un commit cada cierto tiempo, por lo que puede aliviar el problema.

Creo recordar... y sólo creo, que si haces un commitRetaining los demás usuarios de la red no verán ese registro recien añadido, porque precisamente te guarda el contexto de tu transacción.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #13  
Antiguo 22-11-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
Sí, pero añadir que "dejar la sesión abierta", mejor dicho mantener el contexto de la transacción, consume recursos, por ello si vas a realizar una inserción masiva, o usas continuamente commitRetaining la aplicación puede volverse lenta después de trabajar con ella. Lo bueno es que los componentes de acceso (Zeos no los he mirado) normalmente realizan un commit cada cierto tiempo, por lo que puede aliviar el problema.

Creo recordar... y sólo creo, que si haces un commitRetaining los demás usuarios de la red no verán ese registro recien añadido, porque precisamente te guarda el contexto de tu transacción.

Saludos
yo trabajo con transacciones para grabar documentos, de resto dejo la propiedad autocommit en true, ya que por un registro no hay problemas.

Lo de las inserciones masivas no lo he probado, pero para trabajar con los Zeos es necesario el commit retain ya que no te deja iniciar una nueva transaccion, con respecto a lo de la red, hasta el momento no he tenido ese problema eso si el isolation lo dejo en readcommited.

El unico problema que he encontrado, pero segun he leido es asi que deberia funcionar, es que un generador en un rollback no se restaura y si adelanta el numero.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #14  
Antiguo 22-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por eduarcol Ver Mensaje
El unico problema que he encontrado, pero segun he leido es asi que deberia funcionar, es que un generador en un rollback no se restaura y si adelanta el numero.
Es normal ya que los generadores se encuentran fuera del control transaccional, de ahí que siempre dé un número distinto aunque haya 1000 transacciones insertando 1 registro, y por consiguiente nunca tengamos un key violation.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #15  
Antiguo 22-11-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Question

ok Lepe pero que piensas de lo que dice PoliBurro:
Cita:
OJO, En un entorno multiusuario es un grave error colocar transacciones en los clientes. Lo mejor es dejar que el motor se encargue de ese trabajo.
¿Cual es la razon del error? ¿Por que no se deberia poner transacciones en los clientes en un entorno multiusuario?¿Que es lo mas adecuado entonces?
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 22-11-2008 a las 16:56: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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
transacciones y ZEOS david_uh Varios 0 26-05-2007 19:44:03
Problemas al actualizar en detalle con zeos, que puedo hacer.... uper MySQL 1 17-11-2005 22:52:12
Transacciones FireBird con Zeos vichovi Conexión con bases de datos 3 13-07-2005 08:49:29
Como Realizar transacciones con Zeos o en Delphi Dayvis MySQL 1 22-10-2004 03:00:47
Como puedo hacer consultas de fecha con el componente Datetimepicker Julio César Varios 2 06-07-2003 05:24:51


La franja horaria es GMT +2. Ahora son las 05:20:49.


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