Titolo: Caricare gli indici all'avvio
Categoria: Codice |
|
Ultimo Aggiornamento: 09/12/08 |
In certe situazioni può accadere che l'utente chiuda spesso il programma, ad esempio nelle installazioni monoutenza.
Alla prima ricerca 4D deve caricare gli indici in cache e quindi la prima ricerca puà risultare lenta in modo anomalo all'utente.
Un trucco è caricare gli indici all'avvio del programma in un processo separato: si può lanciare ad esempio una query sui campi più usati.
Se c'è abbastanza cache e il database non è molto grande eseguendo il presente metodo si caricano tutti gli indici all'avvio.
`Metodo CaricaIndici
READ ONLY(*)
MESSAGES OFF
C_LONGINT($fieldType;$fieldLen)
C_BOOLEAN($indexed)
C_REAL($valoreNum)
C_DATE($valoreData)
C_TIME($valoreOra)
C_TEXT($valoreSt)
C_BOOLEAN($valoreBool)
For ($i;1;Count tables)
For ($j;1;Count fields($i))
GET FIELD PROPERTIES($i;$j;$fieldType;$fieldLen;$indexed)
If ($indexed)
$tabellaptr:=Table($i)
$campoptr:=Field($i;$j)
ALL RECORDS($tabellaptr->)
FIRST RECORD($tabellaptr->)
Case of : (($fieldType=Is Alpha Field ) | ($fieldType=Is Text ))
$valoreSt:=$campoptr->
QUERY($tabellaptr->;$campoptr->=$valoreSt)
: (($fieldType=Is Real ) | ($fieldType=Is LongInt ) | ($fieldType=Is Integer ))
$valoreNum:=$campoptr->
QUERY($tabellaptr->;$campoptr->=$valoreNum)
: ($fieldType=Is Date )
$valoreData:=$campoptr->
QUERY($tabellaptr->;$campoptr->=$valoreData)
: ($fieldType=Is Time )
$valoreOra:=$campoptr->
QUERY($tabellaptr->;$campoptr->=$valoreOra)
: ($fieldType=Is Boolean )
$valoreBool:=$campoptr->
QUERY($tabellaptr->;$campoptr->=$valoreBool)
End case UNLOAD RECORD($tabellaptr->)
End if End for End for MESSAGES ON
Inviato da: PierPaolo Sichera |
|
Visite: 10148 |
Se accedi con utente e password, puoi aggiungere dei commenti.