Foxpro
Modificarea structurii bazei de dateComanda MODIFY STRUCTURE permite modificarea structurii unei baze de date. MODIFY STRUCTURE Comanda permite accesul utilizatorului la structura bazei de date active deschisa in acel moment in zona de lucru. Utilizatorul poate sterge, adauga, sau insera campuri, poate modifica lungimea, sau tipul unor campuri. Datele existente se vor copia in noua structura prin verificarea numelui de camp din cele doua structuri. Daca coincid, datele se vor trece pe noua structura facandu-se conversia, acolo unde este posibil, la noul tip de camp. Atentie! Daca am schimbat lungimea campului s-ar putea ca valorile existente in structura anterioara sa nu “incapa” si, daca se va face trunchiere, la numere se vor pierde valori (apar stelute!). Daca impreuna cu adaugarea unor campuri se va face si schimbarea numelui unor campuri, se vor pierde date. Afisarea structuriiLIST/DISPLAY STRUCTURE [TO PRINTER/TO FILE <fis.txt>] Comenzile LIST si DISPLAY sunt asemanatoare, cu deosebirea ca DISPLAY face o pauza la umplerea unui ecran. Afisarea structurii poate fi directionata la imprimanta sau intr-un fisier text. Exemplu: SELECT a USE mijloacef LIST STRUCTURE
Duplicarea structurii conceptuale: COPY STRUCTURE TO <fis.dbf> [FIELDS<lista-camp>] Comanda permite crearea unei noi baze de date numita <fis.dbf> pornind de la baza de date activa, prin preluarea tuturor campurilor (daca lipseste clauza FIELDS) sau a anumitor campuri enumerate in clauza FIELDS. Exemplu: din baza de date mijloacef se creaza o noua baza de date, mijloacaf_n,in care vom copia doar campurile COD, DENUMIRE si VALOARE: select a use mijloacef && se deschide baza de date mijloacef copy structure to mijloacef_n fields cod, denumire, valoare use mijloacef_n list structure
Exista inca o modalitate de a crea structura unei baze de date: CREATE TABLE care permite specificarea directa, in comanda, a structurii. Are formatul: CREATE TABLE<fis.dbf> (<lista-definitii>) unde <lista-definitii>:=<nume-camp> <tip>[([<lungime>], <zecimale>])] Constructia <tip> este una din literele asociate tipurilor de date. Functii standard relativ la structura bazei de date: 1) FIELD(<expn>) intoarce numele campului din baza de date activa care are numarul de ordine <expn>; 2) RECSIZE() intoarce dimensiunea in octeti a structurii bazei de date active; 3) TYPE(<camp>) intoarce tipul unui camp precizat ca sir de caractere; 4) FLDCOUNT() intoarce numarul de campuri din structura bazei de date. Exemple use mijloacef && deschidere fisier mijloacef.dbf ?field(1) && se afiseaza numele primului camp COD ?field(6) && se afiseaza numele celui de-al 6-lea camp STARE ?field(15) && daca numarul dat ca parametru depaseste numarul de && campuri din structura, functia intoarce sirul vid ?field(15)=” && testam daca rezultatul intors de functie este sirul vid .T. ?field(15)=’’ && sirul vid este diferit de caracterul spatiu “ ” .F. use mijloacaf_N ?recsize() && se observa afisarea dimensiunii articolului ?type(“denumire”) C && campul nume are tipul caracter use mijloacef ?fldcount() && fisierul mijloacef are in structura 8 campuri use mijloacef_n ?fldcount() && fisierul PROBE are 3 campuri Structura fizica a unei baze de date cuprinde ansamblul valorilor campurilor grupate in inregistrari sau articole. Articolele se depun in tabela sau baza de date unul in continuarea celuilalt si fiecare poarta o informatie (un numar), ce se asociaza automat la introducerea valorilor articolului in fisier. Numerele sunt in secventa strict crescatoare, determinand pozitia fizica a articolului in fisier. Numarul de articol permite regasirea rapida a inregistrarii. In fiecare moment al prelucrarii unui fisier se pastreaza numarul articolului prelucrat (articolul curent) in pointerul de fisier sau indicatorul de inregistrare. Fisierul are un marcator de inceput si un marcator de sfarsit, intre care se poate opera cu inregistrarile utilizator. Cateva functii necesare prelucrarii articolelor: a) RECNO () && intoarce numarul articolului curent b) EOF () && intoarce .T. daca in urma prelucrarilor s-a ajuns && la sfarsitul de fisier si .F. in caz contrar. c) BOF () && intoarce .T. daca in urma prelucrarilor s-a ajuns && inaintea primului articol cu date si .F. in caz contrar. d) RECCOUNT () && intoarce numarul de articole din baza de date Selectarea articolelorPrelucrarile asupra unei baze de date (afisari, copieri, stergeri, modificari etc.) pot fi realizate pe toate articolele bazei sau pe o parte a acestora. Operatia de selectare a articolelor care vor fi prelucrate poate fi indicata chiar in comanda de prelucrare prin clauzele de selectare.
Clauza <domeniu> poate fi inlocuita cu urmatoarele cuvinte cheie: ALL: sunt selectate roate articolele fisierului, NEXT <n> sunt selectate urmatoarele <n> articole fata de articolul curent; REST: sunt selectate toate articolele pana la sfarsitul fisierului incepand cu articolul pe care am fost pozitionati anterior acestei comenzi; RECORD <n>semnifica articolul cu numarul <n>. Clauza FOR <cond> permite selectarea articolelor care verifica conditia indicata prin constructia <cond>, implicit sau prin testarea acesteia pe intreg domeniul precizat in comanda. Clauza WHILE <cond> selecteaza articolele care verifica conditia data; aceasta verificare inceteaza atunci cand se gaseste primul articol care da ca rezultat al conditiei valoarea .F. (fals).
|