* Table for test CREATE CURSOR test (f1 M,pos I) INSERT INTO test (f1) values(REPLICATE('Z',500)+REPLICATE('1',RAND()*500)) INSERT INTO test (f1) values(REPLICATE('A',500)+REPLICATE('2',RAND()*500)) INSERT INTO test (f1) values(REPLICATE('Z',500)+REPLICATE('1',RAND()*500)) INSERT INTO test (f1) values(REPLICATE('A',500)+REPLICATE('0',RAND()*500)) * Init: build a CursorIndex with table boolmarks * and split Memo in string SELECT RECNO() bookMark; ,LEFT(f1,254); ,LEFT(SUBSTR(f1,255),254); ,LEFT(SUBSTR(f1,509),254); ,LEFT(SUBSTR(f1,763),254); FROM Test ORDER BY 2,3,4,5 INTO CURSOR OrdMemo * Index BookMark for relation INDEX ON bookMark TAG RX SELECT Test * join table with Index SET RELATION TO RECNO() INTO OrdMemo * fill order field REPLACE pos WITH RECNO('OrdMemo') ALL * release temporary index USE IN OrdMemo * build memo index with hashing keys INDEX ON pos TAG IXMemo BROWSEYou can build mixed index: Memo,Chars,Date,Numeric,....