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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Francisco Rodríguez
02/01/2009 - 15:25 | Informe spam
Hola Eugenio.


No había mirado el Syncronization Framework. Le echaré un vistazo para ver
si me puede servir.

Muchas gracias por la información.


Un saludo.

Francisco Rodríguez


"Eugenio Serrano [MVP]" <eserrano [at] solidq.com> escribió en el mensaje de
noticias:
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




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida