Hi, This is my first entry to the fb area. Re FB Databases, I have done this a couple of times. I find that the best way is to set up a record with the fields that you require, and a handle to hold the data. If the data is massive and is going to eat up all your ram, you can set up two records, one for the main data and one for an index that holds the elements of the data that you want to search and sort on. You can access the data : LOCAL FN doStuff err = FN HLOCK(Handle&) AddrPtr& = [Handle&] FOR Count& = 1 TO gNumRecs& APtr& = AddrPtr& + Count& * _RecLen long if APtr&.Data% = WhatImLookingFor% do stuff end if NEXT err = FN HUNLOCK(Handle&) END FN The advantage of this is that the handle can be resized, I do this everytime I add a record. Also you are not limited to a record array size of 256 bytes. The concept of handles can be a little confusing, but I find this is the best way. You will also find that a lot of functions become generic. I have not noticed any speed penalty. Let me know if you want any examples.