|
Тема |
Clipper5 и *.cdx [re: Гъди] |
|
Автор |
NumLock () |
|
Публикувано | 28.06.00 11:15 |
|
|
Не съм използвал никога Exospace защото съм фен на Blinker (ама истинския, не този който върви като демо с Clipper), но мисля че проблема е същия - управлението на паметта и временните файлове. Когато (размер на ключа)*(брой записи) стане достатъчно голямо командата Index се държи непредсказуемо, независимо дали работиш с NDX, CDX, MDX, NTX или каквито и да са xxX-ове. Reindex се държи малко по-добре, но и там избива.
Как си решавам въпроса - използвам в командата Index частта Eval Every.
Пример
Index on Field1+Field5+Str(Field7,5) Tag ZABIVA To NESTAVA Eval {|| Mamati()} Every Interval
където mamati() си е лично твоя функция, която прави каквото си поискаш - например gauge. (нищо лично ;-) ), стойността на Interval си я избираш с налучкване, така че да не забива отново програмата.
Ефекта си го обяснявам така: на всеки Interval записа индексирането спира, резултатите се записват в индексния файл и заетата памет се освобождава.
В момента това върви при мен върху файл с почти 43000 записа и размер на ключа за индексиране 17 байта.
Сигурно проблема може да се реши и с някакви настройки по паметта при свързването, но след като съм си решил проблема какво да се хабя.
А имаш ли някакъв опит с индексиране на DBF файлове във Delphi или CBuilder ?
|
| |
|
|
|