|
Tip 40 - Today en Status(CurrentDate)
Het Today-gedeelte
van deze tip is enkel voor gebruikers van oudere
FileMaker-versies. Today
is immers al geruime tijd afgevoerd, en de
Status-functies
zijn ondertussen de Get-functies
geworden.
De functies Today
en Status(CurrentDate)
gaven allebei de datum van vandaag, maar niet precies op
dezelfde manier.
Iedereen die in wat grotere databanken
de Today-functie
gebruikt, heeft al wel gemerkt dat er een vervelend nadeel
bij hoort. Het gaat namelijk om de manier waarop die
datuminformatie bewaard wordt. Alles heeft te maken met de
Storage
option: bij Status(CurrentDate)
kan men die vrij kiezen, bij Today
niet. Dit betekent dat de Today-datum
geïndexeerd is, en dus garant staat voor razendsnel
zoeken. Nadeel is dat de datum, eens geïndexeerd,
niet meer wijzigt ook niet na middernacht ! Die datum blijft
dus eeuwig vaststaan tot... de databank gesloten wordt en
opnieuw geopend !!! Dit betekent dat bij het openen
automatisch die vervelende progress bar verschijnt
"Recalculating Today". En dat kan wel even
duren, want het gebeurt voor elke record, of die nu gebruikt
wordt of niet ! Bij grotere databanken geeft dat de
gelegenheid tot een (korte) koffiepauze, willen of niet...
Status(CurrentDate)
zou op dezelfde manier werken als we daarbij de optie
Stored
zouden aanklikken, maar dat doen we dus best
niet. Bij Non
Stored wordt de datum wel
automatisch aangepast, zodat we steeds de juiste datum zien,
of de databank nu blijven openstaan is of niet.
Opgelet: stored betekent niet
dat de datum nooit meer gewijzigd wordt! Stored
betekent dat de informatie ongewijzigd blijft, tot we ze
weer opnieuw nodig hebben, en dat is bijvoorbeeld het geval
(1) wanneer we bij het
bladeren doorheen de records telkens dat veld te zien
krijgen
of nog
(2) wanneer die
Status(CurrentDate)
in een formule gebruikt werd en één van de
andere formule-onderdelen gewijzigd wordt : in dat geval
wordt de hele formule herberekend, en dus ook de
Status(CurrentDate),
maar dan wel enkel voor de record waarin we
werken. Gevoelige tijdwinst, dus! Daar zijn de
Status-functies immers voor bedoeld: ze blijven bewaard
tot (minstens) één van de dependente
elementen zich wijzigt.
Wat nu te kiezen? Hiervoor laten
we het liefst Anne Verrinder aan het woord: " Waiting for
the Today to recalculate, or worse, risking users not
closing/opening the file, made the Today function just too
painful."
|