FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Paradox en Red
Hola a todos.
Antes de nada, os pido disculpas por volver sobre un tema tan tratado en estos foros. He estado leyendo muchas y buenas soluciones en los foros. Pero cada caso es particular, y no me dan luz sobre mi problema. Aparte de exigirme importantes cambios en la aplicación ya definida. Intentaré ser breve: Disculpad si digo alguna obviedad o barbaridad, pero soy muy novato en esto de las bases de datos. Tengo un programa con dos bases de datos Maestro/Detalle, originalmente pensado para correr en monopuesto. La implementación de las bases es manual, con lo que quiero decir que no he utilizado el DataModule. Tengo dos TTable, dos TDataSource y un TDataBase, no utilizo alias, sino el propio directorio dondo están ubicadas. Utilizo el siguiente código para abrirlas:
Ahora necesito correrlo en Red. No desearía tener que implantar una copia del programa en cada PC, dado que, aparte de las tablas, el programa usa distintos archivos que deben ser comunes a todos los usuarios y que deben estar accesibles en un mismo PC. Lo he probado en una red local, llamando al programa desde otro PC de la misma red. Aparentemente se abren los dos programas y funcionan independientemente, pero hay un problema de actualización de datos. Este problema consiste en que las modificaciones que realizo en un PC no aparecen en el otro, a pesar de que tengo puesto en el evento AfterPost:
He observado que cuando salgo del programa y vuelvo a entrar, los cambios sí están ahí. Llegando a la conclusión de que cuando cierro y abro las bases tengo acceso a las modificaciones realizadas. Por lo tanto, he incluído en el formulario una bótón para realizar esta labor: cierrra las bases y las vuelve a abrir y así actualizo los datos. Como entiendo que esto es una auténtica "chapuza", apelo a vuestra buena fe, y vuestros conocimientos, para que me iluminéis con una solución más elegante y práctica. Con los mínimos cambios posibles en el código, pues lo tengo muy repartido en varios formularios. Anticipadamente os agradezco vuestro tiempo y vuestro esfuerzo. Última edición por Casimiro Notevi fecha: 12-02-2012 a las 20:54:34. |
#2
|
|||
|
|||
Siento que el código no haya salido enmarcado, pero en la vista previa salía bien.
|
#3
|
||||
|
||||
Cita:
Si se envía primero entonces queda bien, luego ya se puede corregir, no hay problema. |
#4
|
||||
|
||||
El problema viene dado porque tienes abierta una instancia de la tabla en otro Pc y hasta que la cierres y la abras o hagas un Refresh de la tabla no leerá los cambios que se han producido.
Lo lógico sería proceder al revés, tener la tabla o tablas cerradas y cuando abrás el formulario abrir las tablas que por otra parte sería mejor alojarlas en un DataModule y así tenerlas centralizadas. Aún así si tienes una rejilla abierta con los datos no verá los cambios hasta que salgas del formulario y vuelvas a entrar, para estos casos se suele poner un timer y pasado un x tiempo lanzar un refresh sobre la tabla sin tener que cerrar el formulario para estos menesteres. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
Gracias Marcos.
Creo que me has dado una magnífica solución. Lo del timer no creo que lo haga, lo tengo que pensar mejor, pues tendría que actualizar tambien la rejilla para que fuera efectivo y podría interferir algún cambio que esté haciendo un usuario. Creo que es mejor tener controlado cuándo se refresca, por ejemplo antes de leer un registro y antes de hacer un Post. También tengo que revisar el control de concurrencia... Veré cómo lo hago. ¿Que te parece? Voy a probarlo y te cuento. Un Saludo. |
#6
|
|||
|
|||
Ahora me está surgiendo una duda...
¿Por qué tengo que refrescar explícitamente, si tengo la propiedad ClienDB.AutoRefresh=True? Gracias. |
#7
|
|||
|
|||
Bueno.
Llevo toda la tarde haciendo pruebas y os comento los resultados. 1.- Refrescar las bases no sirve de nada. 2.- Cerrar y abrir las bases actualiza los datos. 3.- Una vez me ha dado el error de Index out o date al iniciar el programa, y estoy intentando averiguar por qué. 4.- He leido por ahí que el archivo PDOXUSRS,NET no conviene que esté en el mismo directorio de las bases y voy a intentar cambiarlo a ver si se resuelve. 5.- ¡Estoy hasta el gorro del BDE!, pero no puedo hacer otra cosa, pues no conozco otro sistema de bases de datos y me da miedo meterme a estudiarlo, por el tiempo que me puede hacer perder. Perdonar mi pesadez, acepto sugerencias. Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Paradox En Red Y Bde | NEOALEX00016 | Conexión con bases de datos | 15 | 28-03-2007 02:42:01 |
paradox en red | Fabricio | Conexión con bases de datos | 4 | 17-03-2007 17:27:28 |
Paradox en Red | Mariana | Conexión con bases de datos | 7 | 03-12-2004 20:03:45 |
SQL y Paradox | Sick boy | Tablas planas | 4 | 22-10-2003 21:50:37 |
Paradox e Interbase, como hago para transportar todo lo de paradox a Interbase | Fatima Gonzalez | Firebird e Interbase | 2 | 05-05-2003 18:02:30 |
|