Author | Topic: XBPBROWSE:FORCESTABLE error | |
---|---|---|
Claudio Driussi | XBPBROWSE:FORCESTABLE error on Mon, 18 May 2020 10:56:26 +0200 Very very strange. In one of my apps I got an error in XBPBROWSE:FORCESTABLE only in RDP only for one user, only for one function. I got no sources for XBPBROWSE and I would like to know which is the IVAR that generate the error so I can avoid forcestable in that condition. the error is: ------------------------------------------------------------------------------ ERROR LOG of "D:\rete_CS\AGC\AGC.EXE" Date: 18/05/20 09:31:41 Xbase++ version : Xbase++ (R) Version 2.00.1127 Operating system : Windows 7 06.01 Build 07601 Service Pack 1 ------------------------------------------------------------------------------ oError:args : -> VALTYPE: A VALUE: {} -> VALTYPE: N VALUE: -2 oError:canDefault : N oError:canRetry : N oError:canSubstitute: N oError:cargo : NIL oError:description : Error in array index oError:filename : oError:genCode : 4 oError:operation : <A of 0>[<-2>] oError:osCode : 0 oError:severity : 2 oError:subCode : 1012 oError:subSystem : BASE oError:thread : 3 oError:tries : 0 ------------------------------------------------------------------------------ CALLSTACK: ------------------------------------------------------------------------------ Called from XBPBROWSE:FORCESTABLE(1473) Called from CSDBBROWSE:FORCESTABLE(2206) Called from XBPBROWSE:HANDLEEVENT(1964) Called from XBPBROWSE:REFRESHROWS(3130) Called from XBPBROWSE:REFRESHALL(3058) Called from CSDIALOG:BROWSEDBF(337) Called from DECORBROWSEOL(1800) Called from (B)CSTREEMENU(0) Called from _DOTMENU(490) ------------------------------------------------------------------------------ my method CSDBBROWSE:FORCESTABLE is very simple: method csdbBrowse:ForceStable local rn := recno() local rc := ::xbpBrowse:forceStable() if recno() != rn .and. valtype(::refresh) == 'B' eval(::refresh,,,self) endif return rc if I know which IVAR has a wrong state I can avoid ForceStable propagation. Many thanks Claudio | |
Jonathan Leeming | Re: XBPBROWSE:FORCESTABLE error on Mon, 18 May 2020 09:57:08 -0600 On 5/18/2020 2:56 AM, Claudio Driussi wrote: > Very very strange. > > In one of my apps I got an error in XBPBROWSE:FORCESTABLE only > in RDP only for one user, only for one function. > > I got no sources for XBPBROWSE and I would like to know which > is the IVAR that generate the error so I can avoid forcestable > in that condition. > > > the error is: > > ------------------------------------------------------------------------------ > > ERROR LOG of "D:\rete_CS\AGC\AGC.EXE" Date: 18/05/20 09:31:41 > > Xbase++ version : Xbase++ (R) Version 2.00.1127 > Operating system : Windows 7 06.01 Build 07601 Service Pack 1 > ------------------------------------------------------------------------------ > > oError:args : > -> VALTYPE: A VALUE: {} > -> VALTYPE: N VALUE: -2 > oError:canDefault : N > oError:canRetry : N > oError:canSubstitute: N > oError:cargo : NIL > oError:description : Error in array index > oError:filename : > oError:genCode : 4 > oError:operation : <A of 0>[<-2>] > oError:osCode : 0 > oError:severity : 2 > oError:subCode : 1012 > oError:subSystem : BASE > oError:thread : 3 > oError:tries : 0 > ------------------------------------------------------------------------------ > > CALLSTACK: > ------------------------------------------------------------------------------ > > Called from XBPBROWSE:FORCESTABLE(1473) > Called from CSDBBROWSE:FORCESTABLE(2206) > Called from XBPBROWSE:HANDLEEVENT(1964) > Called from XBPBROWSE:REFRESHROWS(3130) > Called from XBPBROWSE:REFRESHALL(3058) > Called from CSDIALOG:BROWSEDBF(337) > Called from DECORBROWSEOL(1800) > Called from (B)CSTREEMENU(0) > Called from _DOTMENU(490) > ------------------------------------------------------------------------------ > > > > my method CSDBBROWSE:FORCESTABLE is very simple: > > method csdbBrowse:ForceStable > local rn := recno() > local rc := ::xbpBrowse:forceStable() > if recno() != rn .and. valtype(::refresh) == 'B' > eval(::refresh,,,self) > endif > return rc > > if I know which IVAR has a wrong state I can avoid > ForceStable propagation. > > Many thanks > Claudio > Hi Claudio, I'm not sure if this will be of any use but I believe the xppBrowse Class is in the file xpp-browse.prg which should be located in your Documents\Xbase++\source\runtime\dui folder. I am using a slightly newer build (1185) so the source may not match with your 1127 but in my xpp-browse.prg line 1473 is a line in the ForceStable method related to the vertical scroll bar... ::aRecNo[::nRowPos] := ::Eval( ::PhyPosBlock, self ) Hope this helps... Jonathan jonathan.leeming@familycentre.org Edmonton, Alberta, Canada | |
Claudio Driussi | Re: XBPBROWSE:FORCESTABLE error on Mon, 18 May 2020 18:09:21 +0200 On 18/05/20 17:57, Jonathan Leeming wrote: > On 5/18/2020 2:56 AM, Claudio Driussi wrote: >> Very very strange. >> >> In one of my apps I got an error in XBPBROWSE:FORCESTABLE only >> in RDP only for one user, only for one function. ... > Hi Claudio, > > I'm not sure if this will be of any use but I believe the xppBrowse > Class is in the file xpp-browse.prg which should be located in your > Documents\Xbase++\source\runtime\dui folder. I have foundation subscription, so no "dui" folder. > I am using a slightly > newer build (1185) so the source may not match with your 1127 but in my > xpp-browse.prg line 1473 is a line in the ForceStable method related to > the vertical scroll bar... > > ::aRecNo[::nRowPos] := ::Eval( ::PhyPosBlock, self ) > > Hope this helps... Jonathan This helped! I did this changes in my source code: method csdbBrowse:ForceStable local rn := recno() local rc if empty(::aRecNo) .or. ::nRowPos < 1 return self endif rc := ::xbpBrowse:forceStable() if recno() != rn .and. valtype(::refresh) == 'B' eval(::refresh,,,self) endif return rc I cannot test it because on my PC it worked, but now in the same condition, it should work well. Many thanks. Claudio |