Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Lucrul cu tabelele unei baze de date

calculatoare



+ Font mai mare | - Font mai mic



LUCRUL CU TABELELE UNEI BAZE DE DATE

SORTAREA SI INDEXAREA TABELELOR


In prealabil baza de date care o sortez trebuie deschisa iar baza de date sortata trebuie si ea deschiosa si sortata .



SORT ON< campul dupa care se sorteaza >[A/C/D]

TO<nume tabela sortata> FOR< conditie de sortare >

SORT TO<nume tabela sortata> ON <nume camp >

FIELDS<lista campuri >|FIELDS LIKE<conditie>

|FIELDS EXCEPT<conditie complementara>]

INDEX ON <campul dupa care se indexeaza >TO <fisierul simplu index ce se creaza >|TAG <cheia principala daca am mai multe campuri de indexat>[ OF <fisierul de unde iau campurile de indexare >][ FOR L<conditie de indexare >][COMPACT][ASCENDING][DESCENDING] [ADDITIVE]

Transformarea in sir de caractere a campurilor se face asa : STR <camp numeric>,DTOS<camp dat>

Deschiderea fisierelor index simple se poate face o data cu baza de date initiala iar cele compuse separat astfel :

USE<baza de date sursa >INDEX <fisierele index>

USE<baza de date sursa >TAG<fisierele index>

SET INDEX TO [<fisierele index ce se deschid |?][ORDER< numarul fisierului index care se deschide primul>][OF< numele fisierului index compus>][ASCENDING|DESCENDING][ADDITIVE]

SET ORDER TO TAG < cheia ce se deschide >

In cazul alterarii informatiilor cu operatii diverse avem REINDEX.

Gasirea inregistrarilor se face asa:


COMENZI PENTRU REALIZAREA LEGATURILOR INTRE TABELE - RELATII INTRE FISIERE BAZE DE DATE



Posibilitatea de a stabili relatii este una dintre facilitatile care confera putere FOXPRO-ului.O relatie este o legatura intre doua fisiere deschise,bazata pe o referinta comuna cum ar fi un camp sau numarul de articole.Se creaza relatii pentru a conecta temporar articole din diferite baze de date,ceea ce permite accesul simultan la informatiile continute de acestea.

Sunt valabile consideratiile prezentate la instructiunea SET RELATION.

Cand se stabileste o relatie,nu conteaza daca baza de date parinte este indexata sau nu.In schimb baza de date fiu trebuie sa fie indexata daca nu doriti sa se faca prin numarul de articole.


a.     Relatia printr-un camp comun

Cand baza de date fiu este indexata,expresia de legatura pe care-o creati trebuie sa fie de aceasi forma,tip si lungime cu expresia chei de indexare a bazei de date fiu.FOXPRO evalueaza expresia de legatura pentru articolul curent din baza de date parinte si apoi cauta articolul corespunzator(cu aceeasi valoare a chei de indexare) din baza de date fiu.


b.     Relatia prin numar de articol

Cand baza de date fiu nu este indexata,expresia de legatura pe care o creati trebuie sa fie numerica,deoarece ea va fi folosita pentru a gasi un numar de articol.Daca expresia de legatura nu este numerica,va apare mesajul de eroare “Database is not indexed”.FOXPRO evalueaza expresia de legatura penrtu articolul curent din baza de date parinte si apoi cauta articolul cu numarul de ordine corespunzator in baza de date fiu.


STABILIREA RELATIILOR


Inainte de a incepe legarea bazelor de date trebuie sa va asigurati ca sunteti in forma ecran “View” a ferestrei “View”.Toate fisierele pe care doriti sa le legati trebuie sa fie deschise in zone de lucru distincte.

Din lista zonelor de lucru,selectati baza de date care va deveni baza de date parinte.Alegeti butonul Relations.Numele bazei de date parinte va apare in lista Relations cu o sageata care pleaca din el.In continuare,din lista zonelor de lucru,selectati baza de date legata.

Daca baza de date legata este indexata si are stabilit indexul principal,va fi activat generatorul de expresii.Daca baza de date legata este ordonata dupa un camp care exista identic in baza de date parinte,FOXPRO va introduce automat acel camp in expresia de legatura.Puteti schimba acest camp sau puteti crea alta relatie de legatura.

Daca baza de date legata este indexata dar nu are stabilit indexul principal,va apare un dialog Set Index Order pentru a stabili indexul principal in maniera discutata la indexare.

Daca baza de date legata nu este indexata,FOXPRO presupune ca doriti sa creati o expresie de legatura bazata pe numarul de articole.

Cand expresia de legatura are forma dorita,alegeti optiunea <<OK>> si observati in fereastra “View” stabilirea relatiei.

UTILIZAREA INFORMATIILOR DIN

MAI MULTE BAZE DE DATE


O aplicatie complexa lucreaza cu informatii multiple,aranjate in mai multe baze de date.Scopul fragmentarii este acela de a conferi viteza de lucru,de a nu gestiona inutil,in diferite parti ale aplicatiei,informatii care nu se prelucreaza si,nu in ultimul rand,acela de a conferi siguranta datelor manipulate.Vulnerabilitatea datelor scade prin fractionarea lor.

Informatiile atasate unei aplicatii pot exista in mai multe baze de date,dar,in general,aceste baze de date sunt legate pe baza unui camp comun,unic in fiecare articol.Acest camp se numeste camp cheie si are rol esential in utilizarea informatiilor distribuite in mai multe baze de date.

FOXPRO permite utilizarea simultana a maximum 25 de baze de date.Pentru fiecare baza de date,sistemul de gestiune rezerva o zona de lucru curenta,numerotata de la 1 la 25 (sau de la A la J si de la 11la 25).Programatorul are acces la un moment dat numai la o singura zona de lucru;aceasta zona de lucru se numeste “zona de lucru curenta”.Zona de lucru curenta poate fi modificata de programator prin selectare.Vom explica cele spuse anterior printr-un exemplu.


Exemplu:

Consideram doua fisiere baza de date CLIENTI.DBF cu structura:


Cod_clientN 7

Den_clientC 35

Cont_banca C 15

Den_bancaC 20

Cont_cec C 15

Adresa C 25

Den_loc C 20

Telefon C 12

FoxC12

Si FACTURI.DBF cu structura


Nrf N 8

Dataf D8

Cod_benN 7

Val_fact N 142


Aceste fisiere pot fi deschise in doua zone de lucru astfel:


SELECT 1

USE CLIENTI

SELECT 2

USE FACTURI


Deci instructiunea de selectare a zonei de lucru este SELECT si poate avea urmatoarea sintaxa:


SELECT n|alias


Implicit este activa zona de lucru 1.Puteti selecta o anumita zona de lucru precizandu-i numarul prin n.SELECT 0 are ca efect

selectarea zonei de lucru ne folosite cu cel mai mic numar de ordine.

Dupa deschiderea unei baze dedat intr-o anumita zona,acesta poate fi selectata prin aliasul sau.Aliasul implicit al unei baze de date este numele sau (fara extensia.DBF).Se poate atribui bazei de date un alt nume _alias decat numele implicit prin specificarea lui in comanda USE astfel:

USE…ALIAS nume_alias

Un nume_alias poate fi format din maximum 10 caractere (litere,cifre si liniuta de subliniere) si incepe obligatoriu printr-o litera sau cu liniuta de subliniere.

Specificarea campurilor dintr-o baza de date deschisa in alta zona de lucru decat zona curenta se face cu ajutorul numelui_alias astfel:alias.camp sau alias->camp.

Inchiderea bazelor de date deschise in diferite zone de lucru se face prin selectarea fiecarei zone in parte si inchiderea bazei de date din zona respectiva astfel:


SELECT 1

USE

SELECT 2

USE


Sau utilizand comanda CLOSE ALL.

Scopul deschiderii mai multor baze de date este prelucrarea simultana a articolelor din bazele de date deschise .Doua sau mai multe baze de date se pot lega :


1.        Pe baza numarului de secventa a articolelor din bazele de date in cauza (se presupune de regula,ca bazele de date au acelasi numar de articole);este o legatura fizica intre bazele de date;

2.        Pe baza unei chei de indexare;prin acest procedeu,frecvent utilizat,se stabileste o legatura logica intre articolele din bazele de date deschise simultan.


In ambele cazuri,sistemul gestioneaza pointeri de articol pentru fiecare zona de lucru .Pointerii se pot sincroniza prin comanda:SET RELATION.

Formatul comenzii este:


SET RELATION TO|expr_1INTOn1|alias1

|,expr_2 INTOn2| alias2…| [additive]|


Comanda SET RELATION stabileste o relatie intre doua baze de date deschise.Inainte de a stabili relatia,o baza de date (baza de date parinte sau principala ) trebuie deschisa in zona de lucru curenta iar cealalta(baza de date fiu sau legata) sa fie deschisa in alta zona de lucru.

Dupa crearea relatiei, o mutare a pointerului de articol in baza de date parinte,este insotita de mutarea pointerului de articol in baza de date legata pe articolul corespunzator.Daca nu se gaseste un articol corespondent in baza de date legata,pointerul de articol din baza de date fiu este pozitionat la sfarsitul bazei de date.

Expresia de legatura expr_1este de obicei cheia de indexare a indexului principal al bazei de date fiu.

INTO n1 | alias1,indica prin numar sau alias,zona de lucru in care este deschisa baza de date fiu.

Comanda SET RELATION TO anuleaza toate relatiile de legatura ale bazei de date din zona de lucru curenta .

Se pot crea mai multe relatii de legatura intre baza de date din zona de lucru curenta si baze de date deschise in alte zone de lucru prin precizarea mai multor relatii separate prin virgula in forma comenzii.

Utilizarea clauzei ADDITIVE are ca efect pastrarea tuturor relatiilor stabilite in zona de lucru curenta,anterior.In caz contrar acestea sunt anulate.


Exemplu:


Considerand bazele de date descrise anterior si tinand cont de faptul ca in baza de date FACTURI campul cod_ben constituie codul unui client,printr-o relatie intre cele doua baze de date astfel:


SELE 1

USE clienti

INDEX ON cod_client TO codcind

SELE 2

USE facturi

SET RELA TO cod_ben INTO clienti

BROW FIELDS nrf,dataf,clienti.den_client,valf


Un caz particular al relatiilor intre bazele de date il constituie legatura”Unu la n” (1-To –Many).O legatura”Unu la n”,pune in corespondenta mai multe articole din baza de date fiu,unui singur articol din baza de date parinte .

Cand se prelucreaza baze de date legate prin legatura”Unu la n”,pointerul de articol ramane pozitionat pe un articol din baza de date parinte,pana se prelucreaza toate articolele care ii corespund in baza de date fiu.

Stabilirea unei relatii”Unu la n” se realizeaza intr-o maniera similara cu cea pentru stabilirea unei relatii “Unu la unu”.Se incepe cu stabilirea unei relatii normale “Unu la unu” intre fiu si parinte (prin comanda SET RELATION) dupa care se foloseste comanda SET SKIP pentru a transforma legatura stabilita intr-o legatura”Unu la n”.]

Sintaxa comenzii SET SKIP este urmatoarea :


SET SKIP TO |alias1 |,alias2|…|


Daca baza de date parinte este legata de mai multe baze de date fiu (care au aliasurile alias1, alias2, …) atunci relatiile respective pot fi transformate in relatii”Unu la n”printr-o comanda SET SKIP.

In comenziile care au efect asupra unui anumit domeniu de articole (DISPLAY,LIST,etc.),articolele din baza de date parinte se vor repeta pentru fiecare articol corespondent din baza de date fiu.

Anularea unei relatii “Unu la n” se realizeaza cu comanda SET SKIP TO (fara parametrii).

Exemplu:

In exemplul antertior s-a considerat ca parinte baza de date FACTURI iar baza de date CLIENTI a fost considerata baza de date fiu.Daca schimbam modul de abordaresi consideram baza de date CLIENTI ca baza de date parinte si baza de date facturi ca baza de date fiu si tinem cont de faptul ca unui client ii pot corespunde mai multe facturi putem evidentia o relatie “Unu la n” astfel:

SELE 1

USE CLIENTI

SELE 2

USE FACTURI

INDEX ON cod_ben to FACTBEN

SELE CLIENTI

SET RELA TO cod_client INTO FACTURI

SET SKIP TO FACTURI

BROWSE FIELDS facturi.nrf,facturi.dataf,;den_client,facturi.valf




Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 33
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved