El problema es el siguiente: Tenemos una máquina de producción y un sensor de la misma conectado a un pc.
Cada vez que un pedido entra a fabricarse, el sensor lee el número de pedido. En el pc existe una base de datos en access (mdb) con una lista de pedidos que van a fabricarse en el día. Para cada pedido se almacena un registro en una tabla, con cierta información, pero nos importa un campo que indica si está en proceso de fabricación o no.
El caso es que yo me encuentro con este sistema, y me piden desarrollar un programa que cada vez que entre un nuevo pedido a fabricar, muestre un mensaje determinado (que tengo que buscar en la BD de un servidor etc..). Como parece ser que no hay manera de que una BD access (mediante un trigger, macro o lo que fuese) ejecute un comando, lance un programa, comience una conversación DDE (cualquier cosa que sirva para notificar de forma asíncrona) cuando cambie el campo de estado de un pedido, me he visto en dos posibles alternativas:
1. Consultar la BD cada cierto tiempo y ver si ha entrado un nuevo pedido.
2. Mirar la fecha de modificación del fichero *.mdb y si ha cambiado mirar si ha entrado un nuevo pedido.
La mejor opción hubiera sido utilizar el sensor, pero claro, ni tengo manual, ni software ni nada, ahora msimo el sensor lo lee un programa totalmente cerrado para hacer sus cosas, y de cuyo código no dispongo.
Decir que el responsable de sección me ha dicho que los pedidos entran con una frecuencia de una hora, pero claro, yo no puedo arriesgarme a poner un temporizador de una hora. Pondría un temporizador algo menor y el resto del tiempo me pasaría haciendo consultas (opción 1 o 2) hasta que llegara el pedido.
La opción 2 parece en principio más eficiente si se va a iterar mucho, ya que supongo que cuesta menos ver la fecha de modificación de un fichero que hacer una consulta a una base de datos de búsqueda por un campo que ni siquiera está indexado. ¿Es así? ¿Qué opinais?.
Saludos.