C sharp - Acceder a una misma base datos accdb desde dos programas diferentes a la vez

 
Vista:

Acceder a una misma base datos accdb desde dos programas diferentes a la vez

Publicado por Antonio (4 intervenciones) el 26/03/2021 06:22:54
Buenos días amigos tengo esa duda y no se como afrontar este tema.
El tema es el siguiente:
Hay una base de datos llamada deportistas.accdb hecha en access(eso no se puede modificar se que es mejor mysql sqlserver etc pero no se puede modificar).
La base de datos esta creada para una prueba deportiva con 10 controles de tiempos de paso y para unas 30000 personas.
Un programa se encarga de detectar los tiempos de estas personas por los diferentes controles y hacer casi poor segundo un monton de updates en la base de datos con los tiempos. Y otro programa se encarga igualmente de acceder a esa base de datos casi a segundo y con un Select seleccionar los registros que tienen tiempos para generar clasificaciones en tiempo real.
Esa es la cuestión si en pocos segundos un programa realiza updates y otro programa realiza (selects where not in)... ¿me bloqueará la base de datos ?... ¿existe alguna forma codigo , función rutina que me evite el que ambos programas entren en conflicto al realizar cada uno sus tareas?.
Gracias por sus respuestas.
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
sin imagen de perfil
Val: 39
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Acceder a una misma base datos accdb desde dos programas diferentes a la vez

Publicado por Marcelo (23 intervenciones) el 28/03/2021 16:41:50
Antonio, como estás? Particularmente para este caso no deberías preocuparte teniendo en cuenta que uno de los 2 sistemas involucrados solo ejecuta selects según entiendo. En el peor de los casos lo que puede ocurrir es que el Select quede en espera de que el que actualiza o inserta finalice de operar (estás si son operaciones que pueden bloquear las tablas involucradas).

Si estás experimentando algún comportamiento extraño podes comentarlo para tener un panorama más exacto de tu duda.

Abrazo grande
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

Acceder a una misma base datos accdb desde dos programas diferentes a la vez

Publicado por ANTONIO (4 intervenciones) el 28/03/2021 18:11:42
Hola Marcelo te comento:
la base de datos deportistas.mdb tiene 10 controles y cada control es una tabla es decir:
meta, control1,control2,control3,etc.. hasta control9.
Me creado un programa que simula la entrada de datos en esas tablas y les mete una posición general como si hubieran entrado en ese control.
Con un BackgroundWorker por cada control.... cada muy poco tiempo o por segundo y a la vez empiezo a hacer updates actualizando posiciones generales...
Entonces enciendo mi programa y lo que hace es hacer un select de cada control cuyo campo posiciongeneral sea mayor de cero y que me los ordene de menor a mayor y así genero clasificaciones cada tres segundos.
El programa empieza a funcionar bien y me muestra los tiempos en una grilla pero al cabo del rato me salta un excepción que dice:
System.Data.OleDb.OleDbException: 'Could not use 'C:\APPSFAIN\deportistas.accdb'; file already in use.'
Por eso no se si hay alguna estrategia o procedimiento para evitar esto.
Gracias.
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
sin imagen de perfil
Val: 39
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Acceder a una misma base datos accdb desde dos programas diferentes a la vez

Publicado por Marcelo (23 intervenciones) el 28/03/2021 22:38:47
Esa excepción es un poco genérica, podría estar siendo generada por el mismo sistema (si estás actualizando la vista desde un timer y se disparan dos Select en simultáneo, ponele que uno se demore un poco y otro se dispara intentando abrir una segunda conexión) o que se tenga la base abierta con el editor del office access por ejemplo, podrías publicar la porción de código de como haces ese refresh de los datos?
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

Acceder a una misma base datos accdb desde dos programas diferentes a la vez

Publicado por ANTONIO (4 intervenciones) el 29/03/2021 17:36:15
Ok gracias por la respuesta se trataba de eso. Es decir al tener diez hilos distintos a la vez actualizando datos, a veces me saltaba error de que no podía volver a abrir una conexión porque todavía estaba abierta.
Me he asegurado de que este cerrada antes de volver a crear una nueva consulta y de momento parece que va bien.
Muchas gracias!!.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar