PUBLIC myForm,dbCache dbCache = CREATEOBJECT('db_Cache') myForm=CREATEOBJECT('fm') myForm.show() DEFINE CLASS fm AS Form PROCEDURE load WAIT WINDOWS 'FORM SESSION ='+STR(this.DataSessionId) CREATE CURSOR base (id I) INSERT INTO (ALIAS()) VALUES (1) INSERT INTO (ALIAS()) VALUES (2) PROCEDURE Unload USE IN base RELEASE myForm,dbCache PROCEDURE Click SELECT base WAIT WINDOWS "test read "+dbCache.GetInfo(base.id) && no problem DEFINE POPUP myPopup FROM 10,10 SHORTCUT PROMPT FIELD dbCache.GetInfo(base.id) ACTIVATE POPUP myPopup && evaluator error, point on object.Methods put VFP parser on error && then i cannot call my object directly ( very bad ENDDEFINE DEFINE CLASS db_Cache AS Session DataSession = 2 PROCEDURE Init CREATE CURSOR myCache ( id I,Info C(20)) INSERT INTO (ALIAS()) VALUES (1,'PRIMO') INSERT INTO (ALIAS()) VALUES (2,'SECONDO') PROCEDURE GetInfo(i) WAIT WINDOWS 'GET SESSION ='+STR(SET("Datasession")) RETURN LOOKUP(myCache.Info,m.i,myCache.Id) PROCEDURE Destroy USE IN myCache ENDDEFINEBUG on POPUP kill this way.
PUBLIC myForm,dbCache dbCache = CREATEOBJECT('db_Cache') myForm=CREATEOBJECT('fm') myForm.show() DEFINE CLASS fm AS Form PROCEDURE load WAIT WINDOWS 'FORM SESSION ='+STR(this.DataSessionId) CREATE CURSOR base (id I) INSERT INTO (ALIAS()) VALUES (1) INSERT INTO (ALIAS()) VALUES (2) PROCEDURE Unload USE IN base RELEASE myForm,dbCache PROCEDURE Click SELECT base WAIT WINDOWS "test read "+dbCache.GetInfo(base.id) && no problem DEFINE POPUP myPopup FROM 10,10 SHORTCUT PROMPT FIELD GetInfo(base.id) WAIT WINDOWS "NOW ACTIVATE" ACTIVATE POPUP myPopup && evaluator error, point on object.Methods put VFP parser on error && then i cannot call my object directly ( very bad ENDDEFINE DEFINE CLASS db_Cache AS Session DataSession = 2 PROCEDURE Init CREATE CURSOR myCache ( id I,Info C(20)) INSERT INTO (ALIAS()) VALUES (1,'PRIMO') INSERT INTO (ALIAS()) VALUES (2,'SECONDO') PROCEDURE GetInfo(i) WAIT WINDOWS 'GET SESSION ='+STR(SET("Datasession")) RETURN LOOKUP(myCache.Info,m.i,myCache.Id) PROCEDURE Destroy USE IN myCache ENDDEFINE PROCEDURE GetInfo(i) SET DATASESSION TO dbCache.DatasessionId WAIT WINDOWS 'dbcache SESSION ='+STR(dbCache.DatasessionId,5); +' PRG SESSION ='+STR(SET("Datasession"),5) RETURN LOOKUP(myCache.Info,m.i,myCache.Id)BUG:
PUBLIC myForm,dbCache dbCache = CREATEOBJECT('db_Cache') myForm=CREATEOBJECT('fm') myForm.show() DEFINE CLASS fm AS Form PROCEDURE load WAIT WINDOWS 'FORM SESSION ='+STR(this.DataSessionId) CREATE CURSOR base (id I) INSERT INTO (ALIAS()) VALUES (1) INSERT INTO (ALIAS()) VALUES (2) PROCEDURE Unload USE IN base RELEASE myForm,dbCache PROCEDURE Click SELECT base WAIT WINDOWS "test read "+dbCache.GetInfo(base.id) && no problem DEFINE POPUP myPopup FROM 10,10 SHORTCUT PROMPT FIELD GetInfo(base.id) WAIT WINDOWS "NOW ACTIVATE" ACTIVATE POPUP myPopup && evaluator error, point on object.Methods put VFP parser on error && then i cannot call my object directly ( very bad ENDDEFINE DEFINE CLASS db_Cache AS Session DataSession = 2 PROCEDURE Init CREATE CURSOR myCache ( id I,Info C(20)) INSERT INTO (ALIAS()) VALUES (1,'PRIMO') INSERT INTO (ALIAS()) VALUES (2,'SECONDO') PROCEDURE GetInfo(i) WAIT WINDOWS 'GET SESSION ='+STR(SET("Datasession")) RETURN LOOKUP(myCache.Info,m.i,myCache.Id) PROCEDURE Destroy USE IN myCache ENDDEFINE PROCEDURE GetInfo(i) SET DATASESSION TO dbCache.DatasessionId WAIT WINDOWS 'dbcache SESSION ='+STR(dbCache.DatasessionId,5); +' PRG SESSION ='+STR(SET("Datasession"),5) PRIVATE rInfo STORE LOOKUP(myCache.Info,m.i,myCache.Id) TO rInfo SET DATASESSION TO 1 RETURN m.rInfoOK, it go, but i have lost much part of the speed that I could have had;
PUBLIC myForm,dbCache dbCache = CREATEOBJECT('db_Cache') myForm=CREATEOBJECT('fm') myForm.show() DEFINE CLASS fm AS Form PROCEDURE load WAIT WINDOWS 'FORM SESSION ='+STR(this.DataSessionId) CREATE CURSOR base (id I) INSERT INTO (ALIAS()) VALUES (1) INSERT INTO (ALIAS()) VALUES (2) PROCEDURE Unload USE IN base RELEASE myForm,dbCache PROCEDURE Click SELECT base WAIT WINDOWS "test read "+dbCache.GetInfo(base.id) && no problem DEFINE POPUP myPopup FROM 10,10 SHORTCUT PROMPT FIELD GetInfo1(base.id) WAIT WINDOWS "NOW ACTIVATE" ACTIVATE POPUP myPopup && evaluator error, point on object.Methods put VFP parser on error && then i cannot call my object directly ( very bad ENDDEFINE DEFINE CLASS db_Cache AS Session DataSession = 2 PROCEDURE Init CREATE CURSOR myCache ( id I,Info C(20)) INSERT INTO (ALIAS()) VALUES (1,'PRIMO') INSERT INTO (ALIAS()) VALUES (2,'SECONDO') PROCEDURE GetInfo(i) WAIT WINDOWS 'GET SESSION ='+STR(SET("Datasession")) RETURN LOOKUP(myCache.Info,m.i,myCache.Id) PROCEDURE Destroy USE IN myCache ENDDEFINE PROCEDURE GetInfo1(i) RETURN dbCache.GetInfo(@m.i)This is elegant workaround, but need double procedure call,