| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- MODULE AccTestN; (* Access Benchmark *)
- IMPORT InitCompilerMods;
- FROM DBIndxes IMPORT DBIndex, InitIndex, CloseIndex, FindPositionN;
- FROM DBFields IMPORT Replace;
- IMPORT ModBase3;
- FROM Timing IMPORT BeginTimer, ShowUsage;
- FROM Rand IMPORT RandomInit, RandomCard,RandomReal;
- IMPORT StringIO;
- IMPORT StrConv;
- (* FROM Lib IMPORT RAND; *)
- VAR
- counter:CARDINAL;
- string:ARRAY[0..79] OF CHAR;
- PROCEDURE RandStr(VAR S : ARRAY OF CHAR);
- (* Generate a string of random letters with a random length *)
- VAR
- key:REAL;
- BEGIN
- StrConv.RealToStr(RandomReal() * 10000000.0,2,10,S);
- END RandStr;
- CONST
- KeyLen = 10;
- Buffers = 400;
- TYPE
- KeyStr = ARRAY [0..KeyLen-1] OF CHAR;
- VAR
- NDX : DBIndex;
- DBF : ModBase3.DBFile;
- Name : KeyStr;
- Found : BOOLEAN;
- BEGIN
- BeginTimer(); (* BeginTimer() timer counting *)
- RandomInit(1);
- counter:=0;
- ModBase3.InitDBF('ModbaseN.dbf',DBF,0,FALSE,FALSE,FALSE,
- ModBase3.DefaultFixUp);
- IF ModBase3.OpenDBF(DBF) THEN END;
- InitIndex('ModBasen.NDX',NDX,DBF,Buffers,FALSE,FALSE);
- REPEAT (* generate random keys *)
- RandStr(Name);
- FindPositionN(NDX, Name, Found);
- INC(counter);
- UNTIL NOT Found; (* until not in index *)
- DEC(counter);
- CloseIndex(NDX);
- StrConv.CardinalToStr(counter,0,string);
- StringIO.WriteStr(StringIO.outp,string);
- StringIO.WriteEol(StringIO.outp,' Keys found');
- ShowUsage(' Accsesstest time'); (* display elaped time in seconds *)
- END AccTestN.
|