im Programm an dem ich derzeit Änderungen vornehme steht am Anfang der Bereich der für die Indexierung zuständig ist:
Code: Alles auswählen
select 103
set default to (Mcurdir+"\FOLDER")
if .not. file ("DB_TBL.DBF")
//snip
endif
Fnet_use ("DB_TBL")
Fsperrfile()
erase ("IDX1.NTX")
index on upper(name) to IDX1
erase ("IDX2.NTX")
index on gruppe TO IDX2 UNIQUE
set index to IDX1, IDX2
if bNetuse
unlock
endif
MyDbSetOrder( 1 )
Code: Alles auswählen
procedure MyDbSetOrder( nOrderNo )
SET ORDER TO nOrderNo
if empty( OrdKey() )
MsgBox( "Area ("+ltrim(str(select()))+") Order "+ltrim(str(nOrderNo))+" enthaelt keinen Index!"+chr(13)+"ORDKEY -> '"+OrdKey()+"'" )
endif
return
Dann im Bereich den ich selbst programmiert habe - habe ich dann das hier stehen:
Code: Alles auswählen
SELECT 103
/*
erase ("IDX1.NTX")
index on upper(name) to IDX1
erase ("IDX2.NTX")
index on gruppe TO IDX2 UNIQUE
set index to IDX1, IDX2
*/
MyDbSetOrder( 1 )
Was wird da irgendwo im Quellcode zwischen dem Anfang und meiner Routine als Befehle stehen, dass dieser gesetzte Index verlorengeht?
Ich möchte jetzt ungern jedes mal den Index neu aufbauen wenn ich SET ORDER TO verwenden will.