by cmsoft » Mon Jul 20, 2015 2:40 pm
Ruben:
Tal cual te explica muy bien Adolfo, lo que traes en una consulta, es el estado de una tabla de MySql, en el momento que haces la consulta y segun los filtros que le apliques (WHERE, LIMIT, Etc). La consulta te queda en el objeto Query que hayas creado, y para obtener una actualización de los datos de la consulta, tienes que refrescar la misma. Por lo tanto, no es conveniente que hagas el "SELECT" al inicio del programa, puesto que así deberías hacer los correspondiente refresh cada vez que la consulta vuelve a tomar el foco. Sobre todo si trabajas en un ambiente multiusuario.
Asimismo, el motor SQL hará los controles necesarios para mantener la integridad referencial y la unicidad de datos, aunque en la consulta NO VEAS los datos. Por ejemplo si indicaste como clave única de una tabla el campo CODIGO y cuando levantas la consulta existen los codigos 1; 2 y 3, y haces lo mismo en otra terminal, tambien te traerá los mismos codigos, al agregar el codigo 4 en la primera, te lo dejara cargar, pero en la segunda terminal si quieres volver a agregar el codigo 4, te dará un error de clave duplicada. Por eso una manera optima de hacer los procesos de grabacion en la base de datos, es mediante TRY CATCH, y usando BeginTransaction y RollBack o Commit. Con Dolphin, todas esas opciones estan incluidas en la libreria...
Solo un aporte, espero te sirva.