ASP.NET - ¿COMO LO HARIAIS VOSOTROS?

 
Vista:
sin imagen de perfil

¿COMO LO HARIAIS VOSOTROS?

Publicado por ANTONIO (106 intervenciones) el 02/10/2012 18:08:30
Hola amigos tengo una duda a ver si me puedo explicar bien:

Tengo un formulario aspx el cual cada 10 segundos se actualiza y muestra los datos de una base de datos de access .mdb.

El formulario funciona bien, se conecta a la base de datos de access.mdb y muestra los datos mediante un select * from etc..

El problema viene cuando tengo que actualizar esa base de datos es decir, yo cada dos minutos subo una base de datos al servidor con la misma estructura a la que existe pero con datos actualizados. Es decir machaco la base de datos del servidor para poner una base de datos con la misma estructura y nombre pero datos actualizados.

El problema viene a que en el momento en que coincide en que el formulario esta conectandose a la base de datos y yo a la vez estoy subiendo la nueva base de datos y estoy machacando la existente en el servidor me da el error de que la base de datos esta en uso, o simplemente me da error.

¿Que solución me podéis plantear para lo que me está ocurriendo?
Es decir ¿como puedo sobreescribir un archivo en este caso una base de datos de access, sin que los archivos que se están conectando a esa base de datos se vean afectados en ese momento?

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Gilberto

¿COMO LO HARIAIS VOSOTROS?

Publicado por Gilberto (4 intervenciones) el 03/10/2012 16:18:16
creo q en vez de machacar la base de datos....pues en la misma funcion de actualizar creas una q importe la base de datos si es diferente.....o simplemente creas una funcion q importe la base de datos actualizada y q pare la actualizacion hasta q termine la funcion de importar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿COMO LO HARIAIS VOSOTROS?

Publicado por Khristian (335 intervenciones) el 16/05/2013 21:26:09
Viejo el hilo, pero igual.

Usa un manejo de errores.

En depuracion identifica que error te da.

Luego el codigo de actualizacion de de la pagina lo pones dentro de un bloque try-catch donde derivaras el codigo en caso de error.

Si se produce el error que ya has identificado, simplemente el catch ejecutara el codigo correspondiente.

Podrias por ejemplo:
- Mostrar un mensaje "BASE DE DATOS EN ACTUALIZACION", Etc.
- No hacer nada y esperar a la siguiente actualizacion
- Rebajar el tiempo en que se repetirá la actualización, por ejemplo, poner un Flag que indique el estado de actualizacion, si es True=10 min, si es False=1 min., asi cuando la actualziacion falle, dejas el time en 1 minuto, para que se repita mas rapidamente, y cuando se logre la actualizacion lo vuelves a dejar en 10 min.

Tambien podrias usar una tabla con un campo ACTUALIZANDO_BD, donde pondras True o False.
Entonces al reemplazar la base de datos, antes te vas a esa tabla y cambias el valor a True (Actualizando la BD), de esta manera antes de ejecutar codigo de actualizacion de la pagina, pasas a consultar este valor primero.
(Esto lo podrias hacer tambien con una variable de aplicacion desde IIS)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar