ALTE DOCUMENTE |
ORDONĂRI ĪN TABELE
Naturala
![]()
Ordine Fizica
- Sortare
Modificata
Logica
- Indexare
SORTAREA
| SORT TO TableName ON FieldName1 [/A | /D] [/C] [, FieldName2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING][Scope] [FOR lExpression1] [WHILE lExpression2] [FIELDS FieldNameList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [NOOPTIMIZE] |
Chei de sortare - cheie primara, chei secu 21221c220v ndare

Domeniu implicit - ALL
Exemplul1: SORT TO NUME ON NP
USE NUME
BROW

Exemplul2: SORT TO AN2 ON SERIA,GRUPA,NP
USE AN2
BROW

Clauza Fields
sablon (masca) - * ?
Exemplu: SERIA - mastile S* si S?
FIELDS LIKE <sablon>
FIELDS EXCEPT <sablon>
Exemplul 3:
SORT TO STUD_NP ON NP FIELDS LIKE N*
USE STUD_NP
BROW

Exemplul 4:
USE STUDENT
SORT TO STUD_MD ON MEDIA FIELDS EXCEPT NOTA?
USE STUD_MD
BROW

Exemplul 5:
USE STUDENT
SORT TO STUD_N1 ON NOTA1 FIELDS LIKE N* EXCEPT N?
USE STUD_N1
BROW

Comutatorii /A, /D, /C
Exemplul 6:
USE STUDENT
SORT TO STUD_MNP ON MEDIA/D, NP/A/C;
FIELDS NP,MEDIA,SERIA,GRUPA
USE STUD_MNP
BROW

Clauzele ASCENDING | DESCENDING
EXEMPLUL 7:
USE STUDENT
SORT TO STUD_N2N3NP ON NOTA2,NOTA3,NP/A;
DESCENDING FIELDS NOTA2,NOTA3,NP
USE STUD_N2N3NP
BROW

INDEXARE
Indexare - cheie de indexare - fisier index (index)
Exemplu:
Fisierul index pentru cheia de indexare Np

Tipuri de indecsi
(tag, eticheta index) (compacti)
Observatie - index izolat sau tag activ
CREAREA INDECsILOR
Indexarea tabelei
Sintaxa comenzii INDEX
| INDEX ON eExpression TO IDXFileName | TAG TagName [OF CDXFileName] [FOR lExpression] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] |
expresia de indexare
o tip (N, D, L, C)
o omogenizare tip:
STR (<expn1 [,<expn2> [,<expn3>]) →<expC>
DTOS (<expd>) →<expc> (aaaallzz)
Exemplu: SERIA+STR(GRUPA,3)
o mod de ordonare - Īn functie de tipul expresiei
Exemple:
INDEX ON SERIA TO S.IDX

INDEX ON MEDIA TO MED

INDEX ON SERIA+STR(GRUPA,3) TAG SG

INDEX ON STR(MEDIA,5,2)+NP TAG MEDNP OF STUD.CDX

INDEX ON SERIA+NP TAG SNP OF STUD.CDX
INDEX ON NOTA1 TAG N1 DESCENDING

7. INDEX ON SERIA+STR(GRUPA,3)+NP TAG SGNP OF AN2I

EXPLOATAREA INDECsILOR
Deschiderea indecsilor
| USE [Table | ?] [IN nWorkArea | cTableAlias] [INDEX IndexFileList | ?[ORDER [nIndexNumber | IDXFileName | [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]]]] |
Exemplu:
8. USE STUDENT INDEX S.IDX,AN2I.CDX,STUD.CDX,MED.IDX
Lista indecsilor tabelei STUDENT alcatuita la deschidere:
S.IDX
MED.IDX
tag SG - index multiplu structural
tag N1 - "
tag SGNP din AN2I.CDX
tag MEDNP din STUD.CDX
tag SNP "
Index principal la deschiderea indecsilor - Fara clauza ORDER
Exemple:
Fara clauza ORDER - īn exemplul 8 - index principal S.IDX

cu clauza ORDER <expn>
USE STUDENT INDEX S.IDX,AN2I.CDX,STUD.CDX,MED.IDX;
ORDER 2
- index principal MED.IDX

Pentru ORDER 3 īn exemplul 10 - index principal este tagul SG.
cu clauza
ORDER <nume_fis.idx> | [TAG] <nume_tag> [OF <fis.CDX>]
pentru ORDER TAG SG īn exemplul 10 - indexul principal este tag-ul SG, deci cu:
USE STUDENT INDEX S.IDX,AN2I.CDX,STUD.CDX,MED.IDX;
ORDER SG

ORDER cu ASCENDING |DESCENDING
USE STUDENT INDEX S.IDX,STUD.CDX ORDER TAG N1;
ASCENDING
- indexul principal este N1 ↑

Īn exemplul 12, pentru ORDER TAG SNP OF STUD.CDX - index principal este tag-ul SNP din STUD.CDX
Pentru ORDER sau ORDER 0 →neindexat
Sintaxa comenzii SET INDEX TO
| SET INDEX TO [IndexFileList | ? ] [ORDER nIndexNumber | IDXIndexFileName | [TAG] TagName [OF CDXFileName] [ASCENDING| DESCENDING]] [ADDITIVE] |
Exemplu:
SET INDEX TO MED.IDX,STUD.CDX;
ORDER MEDNP OF STUD.CDX

SET INDEX TO ?
SET INDEX TO
Sintaxa comenzii SET ORDER
| SET ORDER TO [nIndexNumber | IDXIndexFileName | [TAG] TagName [OF CDXFileName]] [IN nWorkArea | cTableAlias] [ASCENDING | DESCENDING]] |
SET ORDER TO
SET ORDER TO 0
Exemple:

SET ORDER TO 3
- index activ tag-ul SG din indexul multiplu structural

ACTUALIZAREA INDECsILOR
|
REINDEX [COMPACT] |
Din meniul principal →Table → Rebuild Indexes

ĪNCHIDEREA INDECsILOR
SET INDEX TO USE QUIT
CLOSE INDEXES EXIT
POZIŢIONAREA ĪN TABELELE INDEXATE
Comanda SEEK:
| SEEK eExpression [ORDER nIndexNumber | IDXIndexFileName | [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]] [IN nWorkArea | cTableAlias] |
Comanda SKIP:
|
SKIP [nRecords] [IN nWorkArea | cTableAlias] |
Observatie.
FOUND() = .T. EOF()=.F.
? RECNO()
DISPLAY
.T.
daca exista articolul cautat
SEEK(<expr>) =
.F. daca nu exista
Exemple:
SEEK 'S3' ORDER S.IDX
DISP NP, SERIA,GRUPA


SKIP

Observatie.
BROWSE KEY <expr1> [,<expr2>]
Exemple:
BROWSE KEY 8,10


CREAREA INDECsILOR DIN MENIUL PRINCIPAL
A.
Din meniul VIEW



Genereaza MODIFY
STRUCTURE

SET ORDER TO SGF

Observatie 1: Filtru asociat indexului
Observatie 2: Modificari īn lista indecsilor din pagina Indexes
B. Submeniul Window




DESCHIDEREA INDECsILOR DIN MENIUL PRINCIPAL
GENEREAZĂ SET INDEX TO
<nume index>
(fara ORDER si ADDITIVE)
![]()
daca este fisier
.IDX indexat
Efect
daca este fisier .CDX necesar USE sau
SET INDEX cu ORDER
MODIFICAREA INDEXULUI ACTIV DIN MENIUL PRINCIPAL
Work Area Properties → Index
Order
COMENZI PENTRU COPIEREA sI sTERGEREA INDECsILOR
COPY INDEXES .
COPY TAG .
DELETE TAG .
|