Transacciones en MySQL e Hilos de conexión

Que no se si tiene solución.
MySQLn soporta transacciones, actualizaciones referenciales en cascada.
El problema es que Delphi 7 lanza un hilo por cada ClientDataSet y claro MySQL lo entiende como una conexión nueva y o eso entiendo yo.
El caso es que cuando actualizo un campo que realiza una actualización en cascada, en MySQL funciona pero si le doy refresh no muestra los cambios hasta finalizar la transacción.
Tampoco puede modificar campos en el dataset dependiente pues no coinciden los campos pues los datos de local no coinciden con los de mysql.
Respuesta
1
Lo cierto es que por la misma naturaleza de MySQL, todas las peticiones de datos que se le hacen al servidor (datasets) se convierten en una copia en la memoria del Cliente, por lo que las actualizaciones no son tan obvias.
Para poder ver los cambios en un registro desde cualquier cliente, es necesario que utilices los componentes que te lo permitan.
Ara MySQL yo prefiero utilizar http://www.zeoslib.net/, son muy buenos y además "gratuitos".
Además te permiten hacer las actualizaciones y "refrescar" para los clientes de la manera que lo desees.
Otra cosa que debes responder es lo siguiente: ¿De qué componente estás utilizando el método "refresh"?.
Generalmente el método "refresh" se usa para actualizar un componente "visual" y para actualizar datos en los componentes "no visuales". Si estás tratando de hacer un refresh de un DBGrid, no te será posible ver los cambios a menos que actualices el dataset relacionado.
Por otro lado, para componentes como "query" existen alternativas como "requery" para "actualizar la data" del dataset o sentencia SQL correspondiente.
Espero te sea de utilidad y estoy a disposición para cualquier otra duda o ayuda.
Marco.
Gracias Marco.
No he probado aun la librería de zeoslib pero la estoy descargando para ver como se integra en mi aplicación.
Respecto a el tema de transacciones, ¿la verdad es que el componente que trae Delphi 7 creo que es un poco? ¿Caquita de la baquita?.? ¿Ya les vale?.
Buscando en los foros, comentaban uno alternativo de coreLab www.crlab.com que solo sustituye el componente de conexión a la base de datos, el resto componentes a utilizar son lo originales de dbExpree, o sea se integra perfectamente con una aplicación ya diseñada. Con este componente funcionan perfectamente las transacciones, por eso creo que el borland es una caquita. La putada es que no es libre cuesta 100$ por eso veré el que me has recomendado a ver que tal.
Gracias de Nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas