FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Aplicacion en red
Estimados foristas.
No estoy seguro que este hilo este en el lugar adecuado, pido a los moderadores que lo muevan si es necesario.. Hasta ahora he tenido que desarrollar aplicaciones monousuario, ahora me surge un proyecto para utlizarlo en red. Logico. Mi problema es el siguiente, trabajo con D2007 y Advantage. Las tablas son "planas" y se pueden manejar x SQL o directo. Hasta ahora yo tenia en mente que cuando haciamos edit sobre un registro, este se lockeaba hasta hacer el post, pero creo estar equivocado porque sobre la marcha he puesto dos pcs a grabar al mismo tiempo y se me han superpuesto datos. Como se logra o se evita?? Le he puesto un try.. final.. , pero cuando el segundo pc intenta hacer el try, no puede , se va.. y no me graba.. Me explico?? He revisado casi todo el club pero no he encontrado alguna referencia. Gracias adelantadas. Saludos Leo |
#3
|
||||
|
||||
y podrias poner el codigo que utilizas, tanto para editar como para actualizar el registro....
cuando realizas una actualización de registro en 2 pcs diferentes, lo que hace el motor de base de datos es guardar los cambios del primer Pc y luego los cambios del segundo pc.... por lo que te quedará los cambios del 2 pc actualizados.... lo más probable es que necesites preguntar antes de editar un registro si esta en estado de edición... si se esta editando en otro pc... lanzas un mensaje que no se puede actualizar... de lo contrario lo actualizas Salu2
__________________
BlueSteel |
#4
|
||||
|
||||
Gracias amigos por responder.
rgs uso Advantage y no mysql.. Advantage tiene transacciones para la version servidor pero tambien tiene una version "local" la cual uso debido al poco tamaño de la bases, en esta version no se pueden usar transacciones. Por lo cual debo hacer los loqueos y desloques yo mismo. Es una aplicacion de facturacion asi que mi problema se da cuando tengo que actualizar las numeradoras de las facturas. Cuando un pc entra debo loquear el registro con el ultimo numero, actulizar el resto de las bases, incrementar el mismo y liberarlo. Cuando hay otro pc intentanto hacer lo mismo debe "esperar" ( sin mensaje ) a que se libere el registro, y haga el mismo proceso. Lo que no puedo o no se hacer es que quede "esperando" hasta que se libere el registro.. Como la mayoria vengo de un ambiente xbase donde se hacia un loop hasta que pasaba, en Delphi no me doy cuenta como lograrlo. Espero haber explicado un poco mas mi dilema.. El siguiente es parte de mi codigo.
Gracias por la ayuda.. Saludos |
#5
|
||||
|
||||
Siguiendo los enlaces de rgstuamigo (y si buscas en el club sobre bloqueos optimistas y pesimistas -seguro que encuentras más, porque hemos hablado otras veces de ellos-, link1, link2, link3) lo primero que debes tener claro es, qué tipo de bloqueos existen y cual de ellos necesitas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#6
|
||||
|
||||
Cita:
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#7
|
||||
|
||||
Ahora, que he vuelto a leer el emnsaje, no acabo de tener claro que estás yhaciendo una aplicación en red (como reza el título), pero estás usando una versión local.
¿Es correcto?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
||||
|
||||
Si, neftali. Estoy haciendo una aplicacion en red de maximo 3 pcs.
Lo de version "local" me referia a la base de datos que uso Advantage DataBase, la cual tiene una version servidor para instalar sobre un os servidor ( lease Novell, Windows Server o Linux ), y otra "local" como access o paradox, aunque mucho mejor. Esta version local son solo un par de dlls, y es free. Gracias por responder.. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Minimizar una aplicacion al iniciar aplicacion | sidneyb | OOP | 7 | 11-01-2010 18:51:53 |
Aplicación de Servicio+Aplicación Normal +Socket | jake | API de Windows | 5 | 21-06-2007 18:53:19 |
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 | Gaby123 | API de Windows | 5 | 04-01-2007 22:44:51 |
Diferencia entre aplicacion Clx y aplicación normal??? | JorgeBec | Varios | 1 | 27-10-2004 17:30:49 |
aplicacion vertical? aplicacion horizontal? | maruenda | Varios | 3 | 28-02-2004 23:23:20 |
|