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 .
|