Hello, I test Tiny Multi Bootloader with a simple program compiled with Mikroelectronica Mikropascal on a Pic 16F88 micro. It works without problems. Thank you to all authors and contributors!
Thank for your interest. As a workaround I can use other types of numeric index, different from 'I' (ftInteger), or use the filter methods that work well.
First, I use the 7.01 version downloadable from sourceforge, tdbf701.zip, not the Subversion repository version. But anyway in your run the results are incorrect (your changes to source are not relevant to this bug). The program write 3 rows, with integer (ftInteger) keys 1, 2, 3. Then the program start reading from record with key=2, setting the index file and then SetRange(2, 9999999), and read all rows until EOF. So the correct reading result has to be this: ...... *** Reading numeric ix Trovati...
Attached a simple program to test the bug (for this I used Delhi XE2). I also found that the bug is exactly for Delphi index field type ftInteger, instead ftSmallint, ftLargeint and ftWord do not create the bug (see TDbfFieldDef.VCLToNative source code).
I also found that in Tdbf V7.01 the index on an integer field always acquire a keytype='I' when tablelevel=7 (xBaseVII). See TDbfFieldDef.VCLToNative in dbf_fields. So the TDbf.SetRange is broken, because only expect keytype='N' for numeric keys. Verified the bug also on Delphi XE2.
v 7.01 SetRange not working when using index on integer key, if created with v7.01 AddIndex
My misunderstand! Indeed it's the regular Rexx result. Because, before the instruction...
Strange situation with stem variable