Scrigroup - Documente si articole

     

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


Actualizarea continutului unei baze de date cu date din alta baza de date

fox pro



+ Font mai mare | - Font mai mic



Actualizarea continutului unei baze de date cu date din alta baza de date

Comanda UPDATE:

sintaxa: UPDATE ON <camp> FROM <expN> | <expC>



REPLACE <camp1>WITH<expr1>[,<camp2>WITH<expr2>]

efect: Actualizeaza campurile din baza de date curenta cu date dintr-o baza de date deschisa in alta zona de lucru.

ON <camp> : Pentru a folosi UPDATE, baza de date curenta si cea din care facem actualizarea trebuie sa aiba un camp comun, precizat in clauza <camp>. Baza de date folosita pentru actualizare trebuie sa fie indexata sau sortata in ordine crescatoare dupa campul comun. Comanda functioneaza mai bine daca si baza de date curenta este de asemeni sortata sau indexata.

FROM <expN> | <expC> : Precizeaza numarul zonei de lucru (<expN>) sau alias-ul bazei de date (<expC>) din care se face actualizarea.

REPLACE <camp1> WITH <expr1> : Se precizeaza numele campului care se actualizeaza (<camp1>) din baza de date curenta si expresia de actualizare (<expr1>). Pot fi actualizate mai multe campuri ale bazei de date curente, precizand lista acestora (<camp2>, <camp3>, etc.) si expresiile corespunzatoare de actualizare (<expr2>, <expr3>, etc.). Aceste expresii de actualizare sunt de obicei formate din nume ale campurilor din baza de date folosita pentru actualizare, dar ele pot fi si expresii generale sau constante.

Observatie: Pentru fiecare inregistrare din baza de date curenta, pot fi mai multe inregistrari care se potrivesc (au acelasi continut in campul comun) in baza de date din care se face actualizarea. In acest caz, sunt parcurse toate inregistrarile care se potrivesc, iar inregistrarea din baza de date curenta este actualizata cu continutul ultimei inregistrari gasite.

Daca in baza de date curenta avem mai multe inregistrari cu acelasi continut in campul comun, numai prima dintre ele va fi actualizata.

Exemplu: Am creat anterior bazele de date PERS1.DBF si PERS2.DBF, cu aceeasi structura ca si PERS.DBF. Sa presupunem ca dorim sa actualizam ocupatiile pacientilor din PERS1.DBF, folosind baza PERS2.DBF; campul comun folosit va fi NUME_PREN.

Succesiunea de comenzi necesare va fi:

use pers1

sele B (selectarea celei de a 2-a zona de lucru, in care vom deschide a 2-a baza de date)   

use pers2

index on NUME_PREN to idnume2 (indexarea celei de a 2-a baze da date dupa campul comun)

sele A

update on NUME_PREN from B replace OCUP with B.OCUP (comanda de actualizare).

6.6.19. Copierea fisierelor si a structurii

Comanda COPY:

Cu ajutorul acestei comenzi pot fi efectuate urmatoarele operatii:

copierea fisierelor pe o alta unitate de disc;

crearea unor noi fisiere, care sa contina numai o parte din datele fisierului initial: numai anumite campuri ale acestuia selectate prin parametrul FIELDS, sau numai anumite inregistrari, selectate prin parametrii FOR si WHILE.

Astfel, comanda se poate folosi in urmatoarele variante:

COPY STRUCTURE TO <fisier> [FIELDS <lista campuri>]

efect: Copiaza structura bazei de date curente intr-o baza de date noua. Aceasta baza de date este practic creata la momentul lansarii comenzii, va avea numele <fisier>, precizat in comanda, aceeasi structura cu a bazei de date curente si nici o inregistrare.

Parametri

FIELDS <lista campuri> : Numai campurile precizate in <lista campuri> sunt copiate in baza de date noua. Daca acest parametru este omis, atunci toate campurile vor fi copiate in baza de date noua.

Exemplu: Daca dorim sa cream o baza de date noua cu aceeasi structura cu a bazei de date PERS.DBF, numita PERSN.DBF, va fi suficienta comanda:

use PERS.DBF

copy structure to PERSN

(nu este nevoie sa precizam extensia bazei de date noi; automat se adauga extensia .DBF)

Dupa aceea, pentru a lucra cu baza de date nou creata, aceasta trebuie mai intai deschisa:

use PERSN.DBF

Listand structura ei, vom constata ca este similara cu cea a bazei de date PERS.DBF:

list stru

Daca dorim sa cream o baza de date noua, dar care sa contina numai anumite campuri din PERS.DBF , de exemplu numai numele pacientilor, sexul si data nasterii, vom da comanda:

use PERS.DBF

copy stru to PERSN1 fields NUME_PREN, SEX, DATA_N

COPY TO <fisier> [<domeniu>] [FIELDS <lista campuri>]

[FOR <conditie>]

efect: Copiaza continutul (inregistrarile) bazei de date curente intr-o baza de date noua.

<fisier>: Precizeaza numele bazei de date in care vor fi copiate inregistrarile. Nu este nevoie sa includem si extensia .DBF, deoarece aceasta este folosita implicit. Baza de date in care facem copierea poate exista deja (a fost creata anterior, cu o structura adecvata pentru copierea inregistrarilor, si este goala sau contine un numar de inregistrari la care se vor adauga cele nou-copiate) sau poate fi creata chiar la momentul copierii (va fi practic identica sursei - cu aceeasi structura, si cu inregistrarile precizate).

Parametri

FIELDS <lista campuri>: Precizeaza ce campuri vor fi copiate in noua baza de date. Daca acest parametru lipseste, toate campurile vor fi copiate in noua baza de date.

<domeniu> : Valorile posibile sunt cele cunoscute (ALL, NEXT expN, RECORD expN, si REST). Vor fi copiate in noua baza de date numai inregistrarile care fac parte din domeniul precizat. Valoarea implicita a domeniului pentru comanda COPY TO este ALL (toate inregistrarile).

FOR <conditie> : Sunt copiate in noua baza de date numai inregistrarile care indeplinesc conditia precizata.

Exemplu:

De obicei, atunci cand se lucreaza cu baze de date importante, este utila crearea unor copii de siguranta ale lor, pentru a nu se pierde datele in cazul unor operatii accidentale. O modalitate rapida de a crea copii de siguranta pentru cele doua baze de date pe care le-am dat ca exemplu ar fi:

use PERS

copy to SIGPERS

use INFORM

copy to SIGINFORM   

Am creat anterior baza de date PERSN.DBF, prin copierea structurii bazei de date PERS.DBF. Sa introducem in aceasta baza de date inregistrarile corespunzatoare tuturor pacientilor care sunt studenti:

use PERS

copy to PERSN for OCUPATIE=2

Am creat de asemeni baza de date PERSN1, care contine numai cateva campuri (numele, sexul si data nasterii pacientilor). Sa introducem in aceasta baza de date inregistrarile corespunzatoare tuturor pacientilor care au fost internati cu viroza respiratorie:

use PERS   

copy to PERSN1 fields NUME_PREN, SEX, DATA_N for DIAG_TRIM = 5



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 883
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