The limits are less to do with the size of the RAF and more to do with how many records you need to process at any one time and the time it will take. I expect your normal process would be to select a list of record pointers from the RAF based on criteria. You would, and I guess, select out a list of a few thousand record pointers. Then you would sum only those few thousand records by running through the record pointers list and GET the info to sum.
You would probably sum the whole database once and keep note of those overall ratios or averages. Or as you add or delete records change those ratios or averages. You should not be summing the entire dataset very often.
You can dummy it up, create. RAF with 250k similar records change a few criteria then select out those changed record pointers. Let’s see how long it takes to get 100 record pointers from 250k records.
Ok I created 250000 records, amended at random 1000 then searched for those records. Here are my timings.
Building file File created with 250,000 records in 17145
Amending 1000 records Amendments complete in 109
Searching for records containing Hello Found 999 records
Search completed in 26062
And the code OPEN "members.dat" FOR RANDOM AS #1 LEN=256 FIELD #1,_ ' set up the fields for file opened as #1 90 AS Name$,_ ' 1st 90 bytes contains Name$, string 110 AS Address$,_ ' 2nd 110 bytes contains Address$, string 50 AS Rank$,_ ' 3rd 50 bytes contains Rank$, string 6 AS IDnumber ' 4th 6 bytes contains IDnumber, numeric
print "Building file" t=time$("ms") for n= 1 to 250000 PUT #1,n next print "File created with 250,000 records in ";time$("ms")-t print
t=time$("ms") Rank$="Hello" print "Amending 1000 records" for n= 1 to 1000 m=int(rnd(0)*250000+1) put #1 ,m next print "Amendments complete in ";time$("ms")-t print
t=time$("ms") found=0 print "Searching for records containing Hello" for n=1 to 250000 GET #1,n if instr(Rank$,"Hello",1) then found=found+1 'if you wanted to use this selection again 'store the found record pointers in an array next print "Found ";found;" records" print "Search completed in ";time$("ms")-t print
close #1 'you should kill or delete the dummy members.dat
Post by Chris Iverson on Jul 29, 2020 23:57:55 GMT -5
Basic answer: no. A 64-bit executable cannot be run on a 32-bit system. 32-bit executables CAN be run on 64-bit systems, if the 64-bit system is designed to support 32-bit applications. (Both Windows and Linux and compatibility layers that allow 32-bit apps to function in a 64-bit environment. If those compatibility layers are removed, you can't run 32-bit apps on the 64-bit system.)
Complex answer: Possibly, but that depends on how the final compilation process actually works, and it will still require using a different runtime engine. So, even if you only have to "compile" it once(and I don't know if that's the case, I don't know how compilation and distribution will work on LB5), you will still have to provide separate bundles for 32-bit vs 64-bit.
EDIT: Note that this all only applies to compiled programs. Obviously, source code will(should?) work identically either way.