Page 2 of 2

Re: XBrowse: how to load image data instead of image name

PostPosted: Tue Nov 03, 2020 9:20 am
by Otto
Hello all,

Which size can a memo file be that the queries still work performant?
Do you have experiences with large memo files?
May I also extend my question and ask how SQL behaves?
I changed years ago all my image storing to single files.
What is the disadvantage of storing into single files?

Best regards,
Otto

Re: XBrowse: how to load image data instead of image name

PostPosted: Tue Nov 03, 2020 9:28 am
by Otto
Hello Marc,

detached locals

Here is an explanation from MR. RAO.
Thank you, Mr. Rao, for always helping us.


Best regards,
Otto

____________________________________________________________________________
Creating controls in a loop from array is very tricky. It does not work as expected.

Let me show why:

Wrong code:

for n := 1 to 20
@ n * 20, 50 GET aVar[ n ] OF oWnd <clauses>
next n

After this loop the present value of " n " is 21.
When the dialog is activated and controls are to be shown, the value of "n" is 21 and naturally we get runtime error as subscript out of range.

Correct way:

for n := 1 to 20
aGet[ 1 ] := MakeGet( n * 20, 50, aVar, n, oWnd )
next n

ACTIVATE WINDOW ....
//--------------
static function MakeGet( nRow, nCol, aVar, n, oWnd )

local oget

@ nRow, nCol GET oGet VAR aVar[ n ] of oWnd <clauses>

// note this value of "n" remains the same till oGet goes out of scope
// the principle is called "detached locals"

return oGet

Re: XBrowse: how to load image data instead of image name

PostPosted: Tue Nov 03, 2020 9:52 am
by Marc Venken

for n := 1 to 20
@ n * 20, 50 GET aVar[ n ] OF oWnd <clauses>
next n

After this loop the present value of " n " is 21.
When the dialog is activated and controls are to be shown, the value of "n" is 21 and naturally we get runtime error as subscript out of range.




Ahh.. So the program executes the loop before we do the activate ? This can explane why i have spend time in order to trap errors and have been making workarounds :D :D