De situatie is alsvolgt :
ik heb een master-detail relationship tussen twee paradox-TTables, en 2 grids onder elkaar, de master boven, details eronder. Nu heb ik per master record een gegeven nodig uit het laatste detail-record. Dus ik heb een knopje die de master doorloopt, en par master-record wordt een detail.last uitgevoerd en het gegeven opgehaald (er moet nog wel meer gebeuren maar dat doet nu even niet ter zake). Dit proces moet ik voor verschillende tabellen herhalen. So far so good.
Nu bestaan de tabellen uit 2 tot 7 miljoen records, en wil het allemaal niet zo vlotten; het duurt errug lang (de situatie is ingewikkelder, met meerdere grids). Een simpele oplossing, dacht ik, is per gebruikte tabel de controls te disablen. Dat geeft echt een enorme snelheidsverbetering, MAAR ....
Wat blijkt ?! Het springen naar het laatste detail-record met een detail.last geeft voor mij vreemd gedrag. De recordpointer staat namelijk niet op het laatste record; ieder gegeven dat ik uit de detail-tabel wil halen via een AsString of AsFloat geeft een lege waarde. Detail.eof staat op true.
Het lijkt erop dat DisableControls dit voor mij vreemde gedrag veroorzaakt. Wanneer ik namelijk van de datacontrols de datasource-property leeg, treed het probleem niet op. En dat is dan ook wel de oplossing van mijn probleem, maar ik snap het niet.
Kan iemand hier iets zinnigs over zeggen ? Heeft iemand ervaring met dit gedrag ?
Groet,
Arthur Habraken
Bookmarks