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?
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.
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?
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?
chem: Ik kan me voorstellen dat iemand zelf al eens zoiets heeft gemaakt en er een patch voor bestaat.. iemand?
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 ]
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.
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.
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.
Goed idee.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?
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
typo
[ Voor 3% gewijzigd door traviandus op 17-01-2003 08:53 ]
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.
Goed concreet gemaakt !maniac!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. [...]
Ook graag gedaan.
Pagina: 1