[MySQL] Callback bij wijziging in tabel?

Pagina: 1
Acties:

  • traviandus
  • Registratie: Februari 2001
  • Laatst online: 25-03-2025
Ik begin met te zeggen dat ik weinig weet van databases (en MySQL). Maar ik vroeg me af of het volgende mogelijk is. Kan MySQL mijn programma (C++) op de hoogte brengen van een verandering in een tabel of veld? Zo ja, hoe gaat dat (ongeveer) in z'n werk?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 04-08 07:59

chem

Reist de wereld rond

Je zou dan in de source van mysql moeten rommelen. Er is geen standaard manier voor iig, je zla zelf moeten 'proben' naar veranderingen. (of check de timestamp van de datafiles ;))

Klaar voor een nieuwe uitdaging.


  • smaij
  • Registratie: November 2000
  • Laatst online: 24-08 15:57
Je zou het dan beter simpeleren kunnen aanpakken. Voeg in de tabel een veld toe waarin duidelijk word of deze bewerkt of niet bewerkt is, en laat je C++ programma 1x in zoveel tijd connectie maken en vraag hierbij alle rijen met een bewerkte inhoud op. Zou dat kunnen?

  • traviandus
  • Registratie: Februari 2001
  • Laatst online: 25-03-2025
Dat zou kunnen maar ik wil juist voorkomen dat ik de database moet pollen (i.v.m. groot aantal clients én relatief weinig velden die veranderen in de database). Dus het zou mooi zijn als daar iets voor bestond.

chem: Ik kan me voorstellen dat iemand zelf al eens zoiets heeft gemaakt en er een patch voor bestaat.. iemand?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Mocht je niet vast zitten aan mysql, postgresql biedt (de client) de optie te "luisteren" naar een notice en die notice kan je "opgooien" dmv een bijv een trigger.

[ Voor 4% gewijzigd door ACM op 16-01-2003 12:55 ]


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Dit wordt ook lastig over internet.
Het zal niet door veel firewalls heenkomen omdat er geen request vanuit een client aan vooraf gaat. (kans dat dit klopt 50%, ik weet wel iets maar niet veel op dit vlak)
Ik begrijp dat jij lokaal werkt?
Misschien dat je iets via een message protocol van Unix kan laten lopen. Dan heb je dus wel een soort poll-systeem op je server draaien, die die message aan moet trappen.

Verwijderd

Als je te maken hebt met veel clients, dan kun je toch gewoon een klein server-tooltje schrijven (bijv. in Perl) die eens in de zoveel keer check of je database aangepast is, en zo ja, een broadcast doet over een bepaalde poort waarop je clients reeds geconnect zijn?
Alleen op dat moment gaan de clients nieuwe data ophalen. Je hebt dan niet te maken met firewalls e.d. en je clients hoeven niet constant je database te pollen.

  • traviandus
  • Registratie: Februari 2001
  • Laatst online: 25-03-2025
Verwijderd schreef op 16 januari 2003 @ 20:58:
Als je te maken hebt met veel clients, dan kun je toch gewoon een klein server-tooltje schrijven (bijv. in Perl) die eens in de zoveel keer check of je database aangepast is, en zo ja, een broadcast doet over een bepaalde poort waarop je clients reeds geconnect zijn?
Goed idee.

:)

Het was leuk geweest als dit een feature van MySQL was. Ik zit trouwens niet vast aan MySQL maar daar weet ik een beetje van en van PostgreSQL helemaal niets. Maar misschien kan het geen kwaad om daar nog eens naar te kijken...

edit:
typo

[ Voor 3% gewijzigd door traviandus op 17-01-2003 08:53 ]


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Goodielover schreef op 16 januari 2003 @ 20:52:
[...]
Misschien dat je iets via een message protocol van Unix kan laten lopen. Dan heb je dus wel een soort poll-systeem op je server draaien, die die message aan moet trappen.
Verwijderd schreef op 16 januari 2003 @ 20:58:
Als je te maken hebt met veel clients, dan kun je toch gewoon een klein server-tooltje schrijven (bijv. in Perl) die eens in de zoveel keer check of je database aangepast is, en zo ja, een broadcast doet over een bepaalde poort waarop je clients reeds geconnect zijn?
Alleen op dat moment gaan de clients nieuwe data ophalen. [...]
Goed concreet gemaakt !maniac!
Ook graag gedaan.
Pagina: 1