A ver si pudeo.<br>Las transacciones en los motores de base de datos deben cumplir con ACID:<br>A: Atomicidad, o sea que una transaccion se debe completar todo o deshacer toda, no pueden quedar cosas a medias.<br>C: Concurrencia, se deben poder ejecutar mas de una transaccion concurrentemente.<br>
I: Isolation o aislamiento, una transaccion no debe interferir con la otra.<br>D: Durabilidad, cuando una transaccion se compremote, los cambios son persistentes.<br><br>Ahora, el aislamiento entre transacciones (isolation) es configurable, el standard de SQL define 4 isolations level, y en la mayoria de los motores implementan solo algunos de esos. Incluso algunos de forma diferente. Loa cuatro tipo de isolation son READ COMMITTED, DIRTY READ, REPETEABLE READ y el cuarto no lo recuerdo.<br>
<br>El tema es que, por ejemplo si usas READ COMMITTED, una transaccion no ve los cambios hechos por otra, hasta que esta no los halla comprometido.<br><br>entonces en la transaccion 1 se hace un insert, en la tabla persona:<br>
INSERT INTO PERSONA VALUES("german");<br><br>si la transaccion 2 realiza un select de la tabla persona, no va a ver el registro de german:<br>SELECT * FROM PERSONA;<br><br>recien cuando la transaccion 1 haya realizado el COMMIT, la transaccion podra ver el registro. Tambien debes tener cuidado con motores como Firebird ya quefunciona algo diferente a otros motores. En motores como PostgreSQL, MySQL, SQLite funcionan de forma standard y solo se inicia una transaccion de forma explicita con START TRANSACCION. En cambio en Firebird siempre se inicia una transaccion de forma implicita quieras o no.<br>
Espero que algo de lo que dije sirva, igual deberias leer la doc de tu motor de base de datos, ya que cada uno es un mundito aparte.<br>Saludos.<br><br><br><div class="gmail_quote">2008/11/11 Usuario Anónimo <span dir="ltr"><<a href="mailto:usuarioanonimomysql@gmail.com">usuarioanonimomysql@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><p>¿Lo puedes ilustrar con un ejemplo?</p><p></p><p>Gracias.<br></p><br><div class="gmail_quote">
El 11 de noviembre de 2008 19:08, Tejero, Carlos German <span dir="ltr"><<a href="mailto:german.tejero@gmail.com" target="_blank">german.tejero@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Si estas usando dos transacciones diferentes deberias chequear el<br>
isolation level que estas usando y si has comiteado la transaccion de<br>
modificacion antes de realizar el refresh de la de consulta.<br>
Saludos.<br>
<br>
El mar, 11-11-2008 a las 17:41 +0100, Usuario Anónimo escribió:<div><div></div><div class="Wj3C7c"><br>
<div><div>> No lo se, a ver si alguien nos saca de dudas.<br>
><br>
> Saludos.<br>
><br>
><br>
><br>
> El 11 de noviembre de 2008 18:14, Markisich Emiliano<br>
> <<a href="mailto:markisoft@yahoo.com.ar" target="_blank">markisoft@yahoo.com.ar</a>> escribió:<br>
>         Si pero no lo actualiza por eso preguntaba si hay que hacer<br>
>         algo mas,<br>
>         aparte de SQLQuery1.Refresh<br>
><br>
>         Usuario Anónimo escribió:<br>
>         > ¿Has probado con SQLQuery1.Refresh;?<br>
>         ><br>
>         > 2008/11/11 Markisich Emiliano <<a href="mailto:markisoft@yahoo.com.ar" target="_blank">markisoft@yahoo.com.ar</a><br>
><br>
>         > <mailto:<a href="mailto:markisoft@yahoo.com.ar" target="_blank">markisoft@yahoo.com.ar</a>>><br>
>         ><br>
>         >     tengo dos ventanas una de listado y otra que se abre<br>
>         para dar un ALTA,<br>
>         >     cada ventana tiene su transaccion.<br>
>         >     el problema es que cuando doy de alta un registro no se<br>
>         actualiza<br>
>         >     en la<br>
>         >     ventana de listado, para esto en delphi hacia un refresh<br>
>         en la<br>
>         >     query del<br>
>         >     listado<br>
>         ><br>
>         >     esto lo puedo solucionar desactivando y volviendo a<br>
>         activar el query<br>
>         >     pero en la ventana desaparecen los datos y vuelven a<br>
>         aparecer,<br>
>         >     queda feo<br>
>         >     y ademas pierdo el registro seleccionado porque vuelve<br>
>         el puntero al<br>
>         >     primer registro.<br>
>         ><br>
>         >     ¿se entiende?<br>
>         ><br>
>         >      sqListado.Refresh;<br>
>         ><br>
>         ><br>
>         >     Saludos<br>
>         ><br>
>         >     Usuario Anónimo escribió:<br>
>         >     ><br>
>         >     > ¿Puedes poner un ejemplo de refresh? ¿Para que sirve?<br>
>         ¿Te refieres a<br>
>         >     > un refetch data?<br>
>         >     ><br>
>         >     > Saludos.<br>
>         >     ><br>
>         >     ><br>
>         >     > 2008/11/11 Markisich Emiliano <<a href="mailto:markisoft@yahoo.com.ar" target="_blank">markisoft@yahoo.com.ar</a><br>
>         >     <mailto:<a href="mailto:markisoft@yahoo.com.ar" target="_blank">markisoft@yahoo.com.ar</a>><br>
><br>
>         >     > <mailto:<a href="mailto:markisoft@yahoo.com.ar" target="_blank">markisoft@yahoo.com.ar</a><br>
>         <mailto:<a href="mailto:markisoft@yahoo.com.ar" target="_blank">markisoft@yahoo.com.ar</a>>>><br>
>         >     ><br>
>         >     >     Hola, ¿ me podrian explicar como hacer un refresh<br>
>         con este<br>
>         >     componente?<br>
>         >     >     si es que funciona.<br>
>         >     ><br>
>         >     >     Gracias!!<br>
>         >     >     _______________________________________________<br>
>         >     >     Lazarus-es mailing list<br>
>         >     >     <a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a><br>
>         >     <mailto:<a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a>><br>
>         >     >     <mailto:<a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a><br>
>         >     <mailto:<a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a>>><br>
>         >     ><br>
>         <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
>         >     ><br>
>         >     ><br>
>         >     ><br>
>         ><br>
>         ------------------------------------------------------------------------<br>
>         >     ><br>
>         >     > _______________________________________________<br>
>         >     > Lazarus-es mailing list<br>
>         >     > <a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a><br>
>         >     <mailto:<a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a>><br>
>         >     ><br>
>         <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
>         >     ><br>
>         ><br>
>         >     _______________________________________________<br>
>         >     Lazarus-es mailing list<br>
>         >     <a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a><br>
>         >     <mailto:<a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a>><br>
>         ><br>
>         <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
>         ><br>
>         ><br>
>         ><br>
>         ------------------------------------------------------------------------<br>
>         ><br>
>         > _______________________________________________<br>
>         > Lazarus-es mailing list<br>
>         > <a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a><br>
>         ><br>
>         <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
>         ><br>
><br>
>         _______________________________________________<br>
>         Lazarus-es mailing list<br>
>         <a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a><br>
>         <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
><br>
><br>
> _______________________________________________<br>
> Lazarus-es mailing list<br>
> <a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a><br>
> <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
<br>
_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank">Lazarus-es@lazarus.freepascal.org</a><br>
<a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
</div></div></div></div></blockquote></div><br>
<br>_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a><br>
<a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Carlos Germán Tejero<br>