Mantener sincronizadas dos bases de datos SQL Mobile 2005 en un dispositivo

28/12/2008 - 13:48 por Francisco Rodríguez | Informe spam
Hola a todos, a ver si acierto a explicar mi duda.

Tengo dos bases de datos SQL Mobile 2005 (versión 3.0, creo), en un
dispositivo móvil Pocket PC (WM 5.0): una para "trabajo" y otra como "copia
de seguridad", por decirlo así. El objetivo es que cada operación que
ejecute (INSERT, UPDATE, DELETE) se realice sobre ambas bases de datos.

Supongo que eso podría hacerse fácilmente mediante triggers, si la base de
datos los soportara. En cualquier caso, mi duda está en cómo hacerlo por
código sin "duplicar" cosas. Por ejemplo, si tengo un método AgregarProducto
que reciba como parámetro un objeto de tipo SqlCeConnection, había pensado
si sería posible hacerle una llamada recursiva; la primera vez se ejecutaría
con la conexión a la base de datos de "trabajo", y la segunda con la base de
datos de "seguridad". Pero no termino de verlo muy claro, y si además tengo
que mostrar mensajes de error cuando se produzcan, tampoco me interesa que
se muestren dos veces (aunque eso también se puede controlar con
condiciones).

En resumen, ejecutar la consulta contra la base de datos principal o de
"trabajo", y si eso termina correctamente, que se repita contra la otra base
de datos, evitando duplicar código (la cosa podría complicarse más, si nos
metemos en el tema de que esa segunda ejecución se haga en otro hilo, para
mejorar el rendimiento, etc., pero de momento me quedo con esta duda).

Agradecería vuestras opiniones, ando un poco perdido en cuanto a cómo
diseñar esto.

Un saludo.

Francisco Rodríguez
 

Leer las respuestas

#1 Eugenio Serrano [MVP]
31/12/2008 - 06:14 | Informe spam
Hola Francisco, has mirado el Syncronization Framework de microsoft ?

http://msdn.microsoft.com/en-us/sync/bb821992.aspx

Saludos,
Eugenio Serrano
MVP ASP.Net
Solid Quality Mentors

"Francisco Rodríguez" wrote in message
news:
Hola a todos, a ver si acierto a explicar mi duda.

Tengo dos bases de datos SQL Mobile 2005 (versión 3.0, creo), en un
dispositivo móvil Pocket PC (WM 5.0): una para "trabajo" y otra como
"copia de seguridad", por decirlo así. El objetivo es que cada operación
que ejecute (INSERT, UPDATE, DELETE) se realice sobre ambas bases de
datos.

Supongo que eso podría hacerse fácilmente mediante triggers, si la base de
datos los soportara. En cualquier caso, mi duda está en cómo hacerlo por
código sin "duplicar" cosas. Por ejemplo, si tengo un método
AgregarProducto que reciba como parámetro un objeto de tipo
SqlCeConnection, había pensado si sería posible hacerle una llamada
recursiva; la primera vez se ejecutaría con la conexión a la base de datos
de "trabajo", y la segunda con la base de datos de "seguridad". Pero no
termino de verlo muy claro, y si además tengo que mostrar mensajes de
error cuando se produzcan, tampoco me interesa que se muestren dos veces
(aunque eso también se puede controlar con condiciones).

En resumen, ejecutar la consulta contra la base de datos principal o de
"trabajo", y si eso termina correctamente, que se repita contra la otra
base de datos, evitando duplicar código (la cosa podría complicarse más,
si nos metemos en el tema de que esa segunda ejecución se haga en otro
hilo, para mejorar el rendimiento, etc., pero de momento me quedo con esta
duda).

Agradecería vuestras opiniones, ando un poco perdido en cuanto a cómo
diseñar esto.

Un saludo.

Francisco Rodríguez

Preguntas similares