Best way to find a single record with simple find
    Matthew Jew 
    mjew at icnc.com
       
    Mon Aug  4 00:00:26 CDT 2003
    
    
  
I am wondering what the simplest way to find a single record given a
field containing unique, indexed values to search on.
It seems the simplest way in Valentina is to do something like:
	FBL_BitSet	*articleNumberBitSet = theTable.articleNumber.Find( 
&anArticleNumber );
	FBL_ArraySet *anArraySet = new FBL_ArraySet( *articleNumberBitSet );
	ID_TYPE theRecordNumber = anArraySet(1);
which will give you the record number in three simple steps.
Of course, one could instead
	FBL_BitSet	*articleNumberBitSet = theTable.articleNumber.Find( 
&anArticleNumber );
	FBL_BitSetIterator *anIterator = new FBL_BitSetIterator( 
*articleNumberBitSet );
	ID_TYPE theRecordNumber = anIterator ->FirstItem();
again, three simple steps (I think I have it right).
I was wondering if in these cases where one *knows* there is only one 
record to find
if there is a method like
	ID_TYPE theRecordNumber = 
theTable.articleNumber.FindFirstRecordMatching( &anArticleNumber );
which I imagine already exists in some form within the Valentina Kernel 
which could be
exposed to developers. I know the existing methods allow you do 
everything you need to
do, but I was just hoping to save calls to the memory manager. (It 
seems wasteful to
allocate both a FBL_BitSet and either a FBL_ArraySet or 
FBL_BitSetIterator just to
find a single record.)
Am I missing something simple, or is there a better way to do this?
- Matthew
    
    
More information about the Valentina
mailing list