Код: Выделить всё
MAP
MODULE('Btrieve')
BTRV(USHORT,LONG,<*STRING>,*UNSIGNED,<*STRING>,BYTE,BYTE),|
NAME('BTRV'),PASCAL,RAW
END
END
StatData STRING(33455)
KeyData STRING(64)
DataLen UNSIGNED(33455)
CODE
PosBlock = file{PROP:PositionBlock}
BTRV(15,PosBlock,StatData,DataLen,KeyData,64,0) !Get file statistics
myClass.LoadQueue(*File, *Key, *Queue, String, Long)
Последние 2 параметра задают условия фильтрации и количество запрашиваемых записей. В результате получим заполненную очередь.
Не попробовав, сложно сказать, какой прирост производительности даст такая схема. Использовать ее есть смысл для расширенных операций, в которых можно ограничить чтение только заданными полями, задать условия отбора записей и возвращать за раз множество записей. То есть для оптимизации некоторых тяжелых отчетов.