![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Un commit que falta por ahí, también
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#2
|
|||
|
|||
|
Gracias por las respuestas, me he limitado a ejecutar un proceso sencillo y he hecho paso a paso lo siguiente y algo falla, me explico:
1º Ejecuto el servidor en modo depuración. Es decir paso a paso. Tengo un stop puesto en la instrucción EXECSQL. 2º Ejecuto el Cliente en modo normal. 3º Ejecuto el SQLManager Lite para ver en todo momento los valores que toman los campos de un registro. 4º Modifico un registro en el cliente y pulso aceptar para que mande los datos al servidor con la correspondiente funcion.enviarDatos(dato1, dato2, dato3...); 5º En el servidor se ejecuta el proceso que he copiado mas arriba y se para la linea donde tengo el stop, y empiezo a ejecutar paso a paso. 6º Se ejecuta QExpedientes.ExecSQL y me voy a la base de datos y no observo modificación alguna, es de esperar que sea así, puesto que no ha llegado aún al commit. 7º Cuando se ejecuta la línea "transacciones.Commit", me voy de nuevo a la base de datos (SQLManager Lite) y le doy a refrescar para ver si ha cogido los nuevos datos y no los ha cogido, aún tiene los antiguos. Le doy a refrescar varias veces y nada de nada. Incluso ejecuto otro cliente y aparecen los datos antiguos. Deprimente. 8º Cierro la aplicación y ahora sí, estan los datos en la Base de Datos. El problema que me encuentro es que en el momento que grabo un registro, no se actualiza la base de datos de inmediato, dando origen a un problema, que es que otro ususario se conecte y le lleguen unos datos que no sean los actualizados. De hecho me ha pasado ya y quiero evitar ese problema con la grabación inmediata de datos del cliente al servidor. No sé que hago mal, en principio el proceso es muy sencillo, tal como he puesto más arriba. Supongo que será tocar alguna propiedad o algo del componente TFDTRansaction. Espero me echen un cable. Gracias anticipadas. |
|
#3
|
||||
|
||||
|
Hola
No conozco los componentes que usas pero podrias fijarte el nivel de aislamiento de las transaccion con un readcommited ya deberia leer los datos cambiados. Espero sea util Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar. Antonio Machado |
|
#4
|
|||
|
|||
|
Cita:
Gracias por tu respuesta. El componente TFDFTransaction en su propiedad Isolation tiene asignado "xiReadCommited". El TFDQuery que utilizo para realizar el "Update from ...." tiene en su propiedad Transaction asignado el componente TFDFTransaction. En principio no veo nada raro. Para que me funcione tengo que poner las siguienes instrucciones en el cliente:
No me parece muy coherente cada vez que modifique un dato conectar y desconectar el cliente para que actualice la base de datos. A ver si podemos arreglarlo de otra forma. Gracias. |
|
#5
|
||||
|
||||
|
Ese componente fdtransaction ¿tiene una propiedad "base de datos", y está asignada?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#6
|
|||
|
|||
|
Cita:
Buenas tardes, El componente en sí, no veo que tenga tal propiedad, no sé si está muy escondida por alguna subpropiedad, pero no la veo. Como ultima medida estoy pensando en quitar todas las instrucciones de transacciones, a ver si delphi las ejecuta de forma automática y me arregla el problema, pero lo veo raro. Según tengo entendido cuando no ejecutas una transaccion delphi la ejecuta de forma automática, pero no lo hace. Me gustaría ver como puedo arreglar este problema de que no me graba instantáneamente en las tablas de la base de datos. Gracias por tu interés. |
|
#7
|
||||
|
||||
|
¿Entonces tienes un componente base de datos y tiene asignado un componente transaction?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#8
|
||||
|
||||
|
Cita:
Pues a mi no se tampoco me parece coherente cerrar la coneccion y volver a conectar. Si las transacciones estan configuradas correctamente deberia bastar con cerrar y abrir el dataset. Habria que ver como haces el proceso. Poruqe se supone que la transaccion (estando en readcommited) deberia poder leer las transacciones confirmadas. A mi siempre me ha funcionado; aunque nunca he usado datasnap.
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar. Antonio Machado |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Grabacion | macrossman | Varios | 2 | 06-04-2011 22:09:07 |
| Duda registros valor 0 sql | drykea | SQL | 6 | 13-03-2008 17:43:52 |
| Duda sobre DFS | enrique_84 | Varios | 2 | 08-06-2006 11:53:40 |
| grabación | jorodgar | Windows | 4 | 19-09-2005 11:22:42 |
| Duda sobre busqueda de registros... | hademon | Varios | 2 | 16-09-2005 19:26:17 |
|