Jump to content

mysql em tempo real


frutuopa

Recommended Posts

Bom Dia

Quero saber quando foi adicionado um novo registo a uma determinada tabela no Mysql.

A forma classica é com um timmer. ... mas o timmer obriga-me a interrogar a database repetidamente.

Achei depois que o conseguiria com um BindingSource, associado a uma textbox por exemplo, aproveitando depois o evento textchanged.... Mas preciso sempre de actualizar a BindingSource.

Depois tentei faze-lo a partir de um trigger que chamaria uma rotina externa... Mas desisti, já qe preciso de levar a atualização a todos clientes do programa.

Utilizo muito HMI controls que fornecem um interface com as variaveis de um PLC... Cada mudança do estado de uma variavel do PLC, posso trata-la no evento equivalente ao texttchanged... Não preciso de estar a recorrer a um timmer...  Não sei se fui claro.... Mas há alguma coisa parecida com isto, para monitorar a base de dados ?

 

Obrigado

Paulo Frutuoso

 

 
Link to comment
Share on other sites

Partindo do principio de que as atualizações são unicamente feitas a partir da aplicação e nunca por eventos externos à mesma, podes fazer isso de várias formas:

 - implementar um sistema de mensagens/queue em que sempre que a aplicação insere (ou faz outro tipo de alteração) um registo é enviada uma mensagem para a queue em que quem tem interesse/necessidade pode consultar;

 - implementar um sistema de web services em que que sempre que a aplicação insere (ou faz outro tipo de alteração) um registo é feita uma chamada a esse web service que pode registar essa informação e fazer broad cast para quem tem interesse/necessidade de saber que ocorreram alterações;

- podes ter um trigger nas tabelas que escrevem essa informação numa tabela que se encontra noutra base de dados e servidor distintos em que quem tem interesse/necessidade pode consultar regularmente;
por questões de performance e dado que essa base de dados seria minúscula se guardasse apenas, por exemplo, a entidade, id e timestamp da última atualização, pode fazer sentido ter uma base de dados em memória, sendo que poderás ter de necessitar de um carregamento inicial sempre que esta base de dados arrancar;

- poder ter uma solução idêntica à de anterior mas mantendo um registo num ficheiro, no entanto esta abordagem pode não ser a melhor por questões de acesso concorrencial;

Há mais soluções, e podes até implementar um misto entre algumas delas.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.