Baza de Date Pentru O Benzinarie

CUPRINS:

Capitolul 1:

Introducere în SQL … 4

Capitolul 2:

Funcții din SQL … 5

Capitolul 3:

Algebră relațională … 12

Capitolul 4:

SGBD intr-o benzinarie … 14

Capitolul 5

Programare in FOXPRO privin baza de date intr-o benzinarie

Bibliografie … 38

=== Bază de date pentru o benzinarie ===

Tema: Bază de date pentru o benzinarie

(generalizare)

CUPRINS:

Capitolul 1:

Introducere în SQL … 4

Capitolul 2:

Funcții din SQL … 5

Capitolul 3:

Algebră relațională … 12

Capitolul 4:

SGBD intr-o benzinarie … 14

Capitolul 5

Programare in FOXPRO privin baza de date intr-o benzinarie

Bibliografie … 38

Capitolul 1

Introducere in SQL

Istoria SQL incepe in laboratoarele IBM din San Jose, unde limbajul a fost dezvoltat in ultimii ani ai deceniului 8.Initialele provin de la Structured Query Language.

SQL este diferit de limbajele procedurale si 3GL.

SQL este un limbaj neprocedural. SQL este ceea ce face posibil un sistem de gestiune a bazelor de date relationale SGBDR (Relational Database Management System – RDBMS).Ceea ce diferentiaza un SGBD de un SGBDR este faptul ca ultimul asigura un limbaj de baze de date orientat pe multimi.Pentru majoritatea sistemelor de administrare a bazelor de date relationale, acest limbaj este SQL.

Structured Query Language (SQL – limbajul structurat de interogare) este limbajul standard folosit pentru manipularea si regasirea datelor din aceste baze de date relationale.Prin SQL, un programator sau un administrator de baze de date poate face urmatoarele lucruri:

sa modifice structura unei baze de date ;

sa schimbe valorile de configurare pentru securitatea sistemului;

sa adauge drepturi utilizatorilor asupra bazelor de date sau tabelelor;

sa interogheze o baza de date asupra unor informatii;

sa actualizeze continutul unei baze de date.

SQL a fost dezvoltat pentru a servi bazele de date relationale. Fara o intelegere minima a teoriei bazelor de date relationale, nu veti putea folosi efectiv SQL.

  Capitolul 2

Functii din SQL

2.1 Functii Totalizatoare

 Aceste functii se mai numesc functii de grup. Ele returneaza o valoare bazata pe valorile dintr-o coloana.

 2.1.1 COUNT

Functia COUNT returneaza numarul de linii care respecta conditia din clauza WHERE.

Intrare: SQL> select COUNT(*) persoane_M

from agenti

where nume like ’M%’;

Iesire:

persoane_M

3

OBS: Nu este vreo diferenta daca folosim nume sau * in functia count pentru ca numai ce este implicat in clauza where are efect.

2.1.2 SUM

Functia SUM returneaza suma tuturor valorilor dintr-o coloana.

2.1.3 AVG

Functia AVG calculeaza valoarea medie a unei coloane.

2.1.4 MAX

Daca doriti sa gasiti cea mai mare valoare dintr-o coloana, folositi functia MAX.

Intrare:SQL> select MAX(zona)

from zone;

Iesire: MAX(zona)

40

Aceasta functie lucreaza atat cu numere cat si cu caractere.

2.1.5 MIN

MIN executa actiunea la care va asteptati si opereaza in acelasi mod ca MAX, cu exceptia faptului ca returneaza cea mai mica valoare dintr-o coloana.

2.1.6 VARIANCE

Aceasta functie are ca rezultat dispersia, adica patratul unei deviatii standart, un numar vital pentru multe calcule statistice.

2.1.7 STDDEV

Ultima functie de grup analizata, STDDEV, gaseste abaterea, sau deviatia standart a unei coloane de numere.

2.2 Functii pentru data calendaristica si ora

 2.2.1 LAST_DAY(ultima zi)

Aceasta functie intoarce ca rezultat ultima zi a unei luni specificate.

2.2.2 MONTHS_BETWEEN(lunile dintre)

Daca doriti sa aflati cate luni sunt intre luna x si luna y, folositi functia MONTHS_BETWEEN.

2.2.3 NEW_TIME(Ora noua)

Daca doriti sa corectati ora in functie de ora teritoriului unde va aflati, aceasta este functia de care aveti nevoie.

2.2.4 NEXT_DAY(Ziua urmatoare)

Functia NEXT_DAY gaseste numele primei zile din saptamana egala sau ulterioara unei alte date calendaristice specificate.

2.3 Functii aritmetice

Multe din operatiile pe care doriti sa le efectuati asupra datelor dumneavoastra necesita folosirea matematicii.

2.3.1 ABS

Functia ABS returneaza valoarea absoluta a unui numar pe care il indicati.

2.3.2 COS,COSH,SIN,SINH,TAN,TANH

Functiile COS,SIN si TAN ofera baza de executie a numeroase operatii trigonometrice.

Functiile COSH,SINH si TANH returneaza valorile hiperbolice ale argumentelor primite ca parametri.Toate aceste functii opereaza presupunand ca argumentul de Intrare A are valoarea in radiani.

2.3.3 EXP

Daca aveti nevoie sa ridicati constanta e (constanta matematica folosita in diverse formule) la o putere, aceasta functie este exact ce va trebuie.

2.3.4 LN si LOG

Aceste doua functii se refera la algoritmi.Prima, LN, returneaza logaritmul natural al argumentului primit ca valoare de Intrare.

OBS: Sa nu uitam cumva sa precizam ca argumentul trebuie sa fie pozitiv!

Intrare:SQL>select A,LN(ABS(A))

from numere;

Iesire:

A LN(ABS(A))

1.1447004

-45 3.8066625

4 1.6094379

2.3.5 MOD

Ati intalnit functia MOD inainte de sectiunea prezenta.Ati vazut ca standartul ANSI pentru operatorul modulo, % , este implementat uneori ca functia MOD.

2.3.6 SQRT

Functia SQRT returneaza radacina patrata a argumentului primit. Deoarece radacina patrata a unui numar negativ nu este definita, nu puteti folosi aceasta functie pentru numere negative.

2.4 Functii caracter

 Multe dintre versiunile de SQL pun la dispozitie functii pentru manipularea caracterelor si a sirurilor de caractere.

2.4.1 CHR

Functia CHR returneaza caracterul echivalent cu numarul folosit ca argument.Caracterul este returnat in functie de setul de caractere al bazei de date (ex: tabelul ASCI).

2.4.2 CONCAT

Simbolul || lipeste doua randuri, la fel cum opereaza si functia CONCAT.

2.4.3 LENGTH

Functia LENGTH returneaza lungimea singurului argument caracter pe care il primeste.

2.5 Functii de conversie

Aceste functii va pun la dispozitie o metoda facila de convertire a unui tip de baza de data in alt tip.

2.5.1 TO_CHAR

Modul uzual de operare al acestei functii este conversia unui numar inr-un caracter.

Alte implementari ale limbajului folosesc aceasta functie pentru a converti in caracter alet tipuri de date, ca de exemplu, DATE, sau pentru a include diferite argumente de formatare.

2.6 Functii diverse

 2.6.1 USER

Aceasta functie returneaza informatii despre sistem. USER returneaza numele utilizatorului curent al bazei de date.

Capitolul 4

Algebra relationala

4.1 Operatorul UNION

Reuniunea a doua relatii R si S este multimea tuplurilor apartinand fie lui R, fie lui S, fie ambelor.

Exemplu:

1) Numele, prenumele si sex –ul persoanelor care au data nasterii > 12/01/73 si sexul masculin.

Intrare: SQL> SELECT nume, prenume, sex FROM persoane where data_nasterii >”12/01/73”

UNION

SELECT nume, prenume, sex FROM persoane where sex=”m”;

4.2 Operarul DIFERENCE

Diferenta a doua relatii R si S este multimea tuplurilor care apartin lui R, dar nu apartin lui S. Diferenta este o operatie binara necomutativa care permite obtinerea tuplurilor ce apar numai intr-o relatie.

 4.3 Operatorul INTERSECT

Intersectia a doua relatii R si S este multimea tuplurilor care apartin si lui R si lui S.

Operatorul INTERSECT si DIFERENCE pot fi simulati in SQL, cu ajutorul optiunilor EXISTS, NOT EXISTS, IN, != ANY, in cadrul comenzii SELECT.

4.4 Operatorul PROJECT

Proiectia este o operatie unara care elimina anumite atribute ale unei relatii producand o submultime “pe verticala” a acesteia.Suprimarea unor atribute poate avea ca efect aparitia unor tupluri duplicate, care trebuie eliminate.

Exemplu:

Vizualizarea numelor, prenumelor si a sexului fara dubluri;

SQL> select DISTINCT nume, prenume, sex

from persoane;

4.5 Operatorul SELECT

Selectia este o operatie unara care produce o submultime pe “orizontala” a unei relatii R.

Aceasta submultime se obtine prin extragerea tuplurilor din R care satisfac o conditie specificata.

Exemplu:

Vizualizarea tuturor tuplurilor din persoane care satisfac conditia sex=”f”;

SQL>SELECT *

FROM persoane

WHERE sex=”f”;

4.6 Operatorul DIVISION

Diviziunea este o operatie binara care defineste o relatie ce contine valorile atributelor dintr-o relatie care apar in toate valorile atributelor din cealalta relatie.

Operatorul DIVISION este legat de cuantificatorul universal ( " ) care nu exista in SQL.

Cuantificatorul universal poate fi insa simulat cu ajutorul cuantificatorului existential ($ ) care se gaseste in limbajul SQL.

Prin urmare, operatorul DIVISION poate fi exprimat in SQL prin succesiunea a doi operatori NOT EXISTS.

4.7 Operatorul JOIN

Operatorul de compunere permite regasirea informatiei din mai multe relatii corelate.Operatorul combina produsul cartezian, selectia si proiectia.

4.8 Operatorul NATURAL JOIN

Operatorul combina tupuri din doua relatii R si S, cu conditia ca atributele comune sa aiba valori identice. Compunerea naturala se noteaza prin JOIN(R, S) sau R S.

4.9 Operatorul q -JOIN

Varianta in care se combina tupluri din 2 relatii cu conditia ca valorile atributelor specificate sa satisfaca o conditie JOIN(R, S, conditie) = s conditie(R x S) .Operatia reprezinta o varianta generalizata a operatiei de compunere naturala.

4.10 Operatorul SEMI-JOIN

Operatorul conserva atributele unei singure relatii participante la compunere si este utilizata doar daca sunt necesare atributele unei relatii. Operatorul este asimetric si se noteaza prin SEMIJOIN(R, S, conditie).Operatia de semi-compunere genereaza o relatie care contine toate tuplurile din R, corelate cu oricare din tuplurile lui S.

Exemplu:

Selectam tuplurile din oferte care au pretul din cereri < 10.000$

SQL > select *

from oferte

where cereri.pret<10000;

4.11 Operatorul OUTER JOIN

Operatorul atribuie valoarea null valorilor atributelor care exista intr-un tuplu din una din cele doua relatii de intrare, dar nu exista in a doua.

Exemplu:

SQL>select o.cod_oferta, o.nrcamere, o.tipoferta

c.cod_cerere, c.tipcerere,c.codclient

from cereri c

OUTER JOIN oferte o on oferte.codclient = 3320;

Iesire:

cod_oferta nrcamere tipoferta codclient

1922 3 inchiriere 3320

cod_cerere tipcerere codclient

null null null

234 inchiriere 3320

Capitolul 4

SGBD intr-o benzinarie

Proiectul va cuprinde următoarele puncte:

Prezentarea proiectului

Diagrama entităților relație

Prezentarea entităților, relațiilor și atributelor

Asocierea tabelelor

Operatorii algebrei relaționale

Proiectul a fost redactat in Microsoft Office 2003.

Atributele al căror conținut nu a putut fi determinate au fost completate cu date imaginare.

1. Prezentarea proiectului

Tema acestui proiect este conceperea unei baze de date care să conțină o evidență a activității personalului dintr-o benzinarie din Bucuresti.

Acesta va cuprinde informatii despre tot personalul unei benzinarii din Bucuresti.

Putem incepe prezentarea proiectului cu managerul firmei (patronul).

Intr-o benzinarie mai exista doua casiere care preiau comanda de la pompa

de benzina respective

De protectia angajatilor si paza benzinariei exista 2 paznici care muncesc in doua ture.

Mai exista trei mecanici auto daca exista eventuale deteriorari ale masini.

De aprovizionarea Benzinariei cu benzina,motorina si gaz se ocupa un singur om si pentru menaj se ocupa doua femei de servici.

2. Diagrama entităților-relație

Dep Contabil

Dep Clienti

Dep Paza Si Protectie

m 1

1 1

Dep Femeie de service(menaj)

1 Dep Casier m

1 Dep Conducere 1

m

1

1 m

Dep Aprovizionare m

1 Dep Service

1 m

1

m

3. Prezentarea entităților, relațiilor și atributelor

Relatiile din baza de date dintr-o benzinarie sunt:

Intre Conducere si Femeie de Servici, Service si Casier sunt 1 to many iar intre conducere si aprovizionare, paza si contabil este 1 to 1

Intre Departamentul Service si Departamentul Casier relatia este many to many

Intre Departamentul Casier si Departamentul Contabil relatia este: many to 1 etc…

Orice sef de department trebuie sa conduca orice salariat din deparatamentul sau .

Contabilul trebuie sa realizeze un raport al activitatii firmei respective.

4.Asocierea Tabelelor.

Pt a clasifica personalul dintr-o benzinarie am folosit Visual Fox Pro 9.

Pentru inceput am creeat un departament care cuprindea tot personalul(Salariatii) si pe urma am luat pe rand fiecare departament cu functia care o caracteriza.

Departamentul salariati:

Departamentul Conducere (analog primele 2 pagini pentru oricare dintre departamente):

Departament Casier::

Departament Aprovizionare Benzina:

Departament Contabil:

Departament Mecanic Auto (Service):

Departamentul Femei Servici:

Departament Paznici:

5.Operatorii algebrei relaționale.

UNION intre Departamentul Service(mecani auto) si Departamentul Curatenie(menaj):

Departamentul Service U Departamentul Curatenie=

INTERSECT toate departamentele cu functioanarii care au salariu intre 500 si 600 RON:

Departament Salariati salariu peste 500 si 600 Ron:

SELECT din departamentul salariati sa se afiseze doar cei care au salariu peste 1000 RON:

Capitolul 5

Programare in FOXPRO privind

Baza de date dintr-o

Benzinarie

Parametrizarea Procedurilor

In mediul Foxpro, lista de parametric a comenzilor PARAMETER si DO poate contine variabile,tablouri,constant sau functii, cu respecatarea restrictiilor de definirea a acestora.

Prin urmare parmetrizarea este o operatie complexa de definire a parametrilor de lucru, de stabilire a listelor de parametric pe fiecare procedura, de precizare a rolului lor(intrare/iesire) si efectul lor (local sau global) in raport cu executia fiecarei procedure, dar si cu ansamblu de procedure implicate.Asadar, atunci cand o variabila, tablou,constanta sau functie figureaza intr-o lista de parametric, se poate spune ca ele alcatuiesc parametric si au un rol in plus, acela de a forma obiectul comunicatiei intre procedure.

In lista de parametric pot figura parametric de intrare si de iesire, cu efecte locale sau globale.

De obicei, parametrii de intrare sunt definite si initializati cu date in procedura apelanta influentand executia procedurii apelate si conducand la obtinerea unor rezulatate ce ulterior pot fi atribuite parametrilor de iesire.Este bine de retinut ca dupa revenirea in programul apelant continutul parametrilor de intrare ramane neschimbat.

Parametrii de iesire, pot fi definite in procedura apelanta si contin rezultatele obtinute in urma executiei procedurii apelate.

Parametrii locali sunt definite in procedura apelata (cu sau fara comanda PRIVATE), continutul lor fiind recunoscut numai in procedura in care au fost definite.

Comanda PRIVATE are sintaxele:

PRIVATE<lista-variabile-memorie>

PRIVATE ALL [LIKE | EXCEPT <sablon>]

Ambele forme permit crearea unor variabile sau tablouri de memorie locala cu nume identice cu cele ale unor variabile sau tablouri déjà existente.A doua forma poate suprima de la aceasta regula acele variabile sau tablouri specificate in cascada de procedure prezentatain <sablon>.

Parametrii globali sunt definite in procedura apelanta, cu sau fara comanda PUBLIC, continutul lor fiind recunoscut atat in procedura apelanta cat si in toate procedurile apelate “in aval” (nivelele inferioare nivelului in care au fost definite parametrii).

Comanda PUBLIC are doua forme, ambele facilitand declararea unor variabile sau tablouri globale de memorie, ce pot fi utilizate in orice procedura din interiorul unui program Foxpro.Variabilele de memorie si tablourile create prin comanda PUBLIC, cu exceptia variabilelor FOX si FOXPRO, sunt initializate cu (>F>) (fals).

SIntaxa este:

PUBLIC <lista-variabile-memorie>

PUBLIC [ARRAY] <tablou1> (expN1[,expn2>]) [,<tablou2>

(<expN3>[,<expN4>])…]

unde:

<lista-variabile-memorie> reprezinta una sau mai multe variabile ce sunt declarate globale.

[ARRAY] <tablou1> (expN1[,expn2>]) [,<tablou2>…] sunt nume de tablouri

(<tablou1>, <tablou2> etc.) carora li se asigneaza atributul de parametrii globali.

<expN1> este numarul de elemente dintr-un vector(tablou uni-dimensional).

(<expN1>, <expN2>) reprezinta numarul de linii si coloane dintr-un tablou bidimensional.

Modularizarea programelor FoxPro

Datorita facilitatilor pe care le prezinta lucrul cu procedurii in activitatea de elaborare si testare a programelor, modularizarea apare ca una dintre operatiile deosebit de necesare.Prin urmare modularizarea este o operatie prin care sunt definite in mod unitar module, pe baza unor criterii de funcionalitate prestabilite.Aceasta operatie complexa se realizeaza in trei faze:

Compunerea in parti component

Definirea si conturarea modulelor

Stabilirea legaturilor dintre module in concordanta cu cerintele problemei globale.

In aceste conditii, modulul devine o procedura sau un ansamblu de procedure care va prespecta toate conventiile sistemului FoxPro cu privire la definirea si utilizarea procedurilor.El are rolul de a asigura legaturile functionale cu toate procedurile prelucrative pe baza utilizarii unor parametric de lucru.De regula, aceste module se interpun functional intre monitor si procedurile functional-prelucrative. Partea de dialog a monitorului cu procedurile prelucrative nu este perceptibila pentru untilizator.

Sub aspect functional, pricipalele tipuri de module care se pot proiecta si realize sunt: module de incarcare a datelor;module de validare, module de interogare a bazei de date,module de acces;module de editare a situatiilor finale pariodice; module priviind statistici asupra datelor, module de calcul;module de protective a bazei de date etc…

Principala calitate pe care trebuie sa o prezinte modulele este consistent lor in raport cu functiile pe care trebuie sa le realizeze, dar si cu cerintele de ansamblu ale programului.

Spre exemplificare, vom considera ca obiectiv final realizarea unui set de module cu ajutorul carora sa fie actualizate inregistrarile unei tabele.Pentru aceasta se foloseste succesiunea de comenzi:

-reperarea inregistrarii ce urmeaza a fi actualizata;

-transferul valorilor continute de aceasta inregistrare in variabile de memorie;

-afisarea continutului acestor variabile si a semnificatiei lor;

-actualizarea valorilor utilizand comanda @…GET;

-efectuarea unor validari si corectarea eventualelor erori;

-transferul noilori valori continute de variabilele de memorie in inregistrarea din tabela.

Evident, aceasta succesiune de operatii poate fi descrisa printr-un program unic.

Datorita faptului ca gestionarea si exploatarea unei baze de date implica de obicei aplicatii ce contin intr-o aplicatie si concretizat sub forma unui modul, se va regasi ca parte a unei aplicatii diferite.Utilizarea modului in noua aplicatie va insemna deci economie de timp(din punct de vedere al conceperii si realizarii de programe) si de spatiu de memorie.

O modalitate utilizata de realizatorii de aplicatii este de a declara rutinele ce privesc baza de date sub forma unui fisiere-procedura.Aceasta procedura va fi apelata prin comanda SET PROCEDURE TO<nume-procedura>.Fisierul procedura va contine urmatoarele:

-o rutina de afisare AFIS, prin care se asigura realizarea partii grafice a videoformatelor si estitica apliactiei;

-o rutina de creare si initializare a variabilelor de memorie VARMEM;

-o rutina de transfer ATRIB a continutului campurilor in variabilele de memorie create;

-o rutina de afisare a continutului variabilelor de memorie SAY_VAR si specificarea sensului continutului acestora;

-o rutina de preluare in variabilele de memorie a noilor valori GET_VAR;

-o rutina de validare ERORI prin care se efectueaza detectarea si corectarea unor eventuale erori la introducerea datelor;

-o rutina de transfer LOC, a inregistrarilor din tabela ( utilizand comenzile FIND si SEEK pe o tabela indexata).

Presupunem un fisier-procedura ce se refera la tabela CONTR. Este creat prin comanda MODI COMM pr_mod_c si are urmatorului continut:

Procedure afis

*–––-

@1,1 to 20,79 double

@2,2 to 6,78 double

desen=3

do while desen<6

@desen,3 say replicate(chr(176),75)

Desen=desen+1

enddo

return

procedure loc

*–––

go top

delete tag i_comp

index on str(codp)+ str(codb) tag i_comp

@3,0 to 5,79 double

@9,0 to 12,79 double

@4,1 say “Daca tastati [Enter] sau [Esc] sau introduceti spatii se renunta la operatie”

@10,2 say “Care este codul beneficiarului?____” get m_codb

read

store str(m_codp)+str(m_codb) to chloc

seek chloc

return

Procedure say_var

*––––

Define window fer from 12,41 to 18,77 double

@7,10 say “Codul produsului: ”

@7,42 say m_codp picture “@99999”

@8,10 say “Codul beneficiarului: “

@8,42 say m_codb picture “@99999”

@9,10 say “Pret livrare negociat: “

@9,42 say m_pln picture “@999999.99”

@10,10 say “Cantitate livrate: “

@10,42 say m_cantl picture “@9999999”

@11,10 say “Termenul de livrare: “

@11,42 say m_terml picture ‘@D’

@12,10 say “conditii de livrare : “

if m_cl=space (100)

@ 12,42 SAY m_cl picture ‘@N’

deactive window fer

else

active window fer

?m_cl picture “@N”

wait “Dupa vizualizarea inregistrarii apasati o tasta …” window

aeactive window fer

endif

return

Procedure get_var

*–––-

@7,42 get m_codp picture “@99999”

@8,42 get m_cpdb picture “@99999”

@9,42 getm_pln picture “@999999.99”

99999"e "m_codpa inregistrarii apasati o tasta …00000000000000000000000000000000000000000000000000000000000000000000000000000

@10,42 get m_cantl picture “@9999999

N" ?m_cl picture "er

picture 'double

oduceti spatii se renunta la operatie" FIND si SEEK pe o tabela indexata)a datelor;

fisie

@11,42 get m_terml picture “@D”

Define window fer from 12,41 to 18,77 double

Active window fer

@0,0 get m_cl picture “@N” window fer

deactivate window fer

returnw fer deactivate window fer

ble

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

procedure varmem

*–––

Public m_codp,m_codb,m-pln,m_cantl,m_terml,m_cl

m_codp=0

m_codb=0

m_pln=0

m_cantl=0

m_terml=0{00/00/00}

m_cl=space(100)

Return

Procedure atrib

*––-

m_codp=codp

m_codb=codb

m_pln=pln

m_cantl=cantl

m_terml=termenl

m_cl=cl

return

procedure move

*––

replace codp with m_codp

replace codb with m_codb

replace pln with m_pln

replace termenl with m_terml

replace cantl with m_cantl with m

replace cl with m_cl

RETURN

Procedure ERORI

*–––

If m_codb<10000

@19,0

wait “=Codul nu este correct! Nu trebuie sa fie mai mic de 10000 =”

valid=.F.

endif

if m_terml <{01/01/93}

@19,0

wait “=Data aceasta este incorecta ! =”

valid =.F.

endif

return

Rutinele continute in acest fisier-procedura vor fi utilizate in diferite programe de adaugare inregistrari, actualizare, stergere, vizualizare etc. Aplicatia de adaugare a inregistrarilor , de modificare sau stergere poate utilize rutine continute in acest fisier procedura pr_mod_c.prg.Aplicatia de adaugare va apela procedurile dupa cum se specifica in urmatoarea figura (fig.1) :

Fig.1 Modul de apelare a procedurilor intr-o aplicatie de adaugare a inregistrarilor

Programul sursa necesar efectuarii adaugarii se va reduce la urmatoarea secventa de comenzi:

Procedure modl_act

*–––

Clear

set talk off

valid=.T.

do while .T.

do varmem

do afis

@4,10 say “ Videoformat de intrare pentru noua inregistrare adaugata “

Do say_var

@1,1 say “ ||______________________”

@12,79 say “||”

@13,1 say “||”

do get_var

read

deactive window all

do erori

if valid=.F.

wait “ Greaseala…Reiei! “ window

loop

endif

append blank

do move

clear

@11,1

accept “ Adaugati o noua inregistrare? D/N : “to rasp

if upper(rasp)=”N”

exit

endif

enddo

Bibliografie

Alfonso F.Cardanes,Data Base Management Systems,Allyn and Bacon. Inc., Boston, London, Szdnez, Toronto, 1985.

C.J.Date, An Introduction to Data Base Szstems, Edition 4, Addison – Weslez Publishing Company,1986, London, Amsterdam,Sydney.

H.Loomis,Data Management and File Structures.The Benjamin Cummings Publishing Company,1989.

Gh. Sabau, V. Avram, I.Lungu, Sisteme de gestiune a bazelor de date,Academia de studii Economice, Bucuresti, 1983.

Gh. Sabau, I. Lungu(coordonatori),Sisteme de gestiune a bazelor de date, Academia de Studii Economice, Bucuresti, 1992.

***ORACLE Aplication Tools for MS-DOS. User’s Guide. Oracle Corporation, 1988, U.S.A.

*** ORACLE Aplication Tools for MS-DOS.Getting Started.Oracle Corporation, 1988,U.S.A.

***SQL Language Reference Manual, Oracle Corporation, 1988, U.S.A.

***SQL*PLUS Version 2.1. User’s Guide Manual, Oracle Corporation, 1988, U.S.A.

***SQL*PLUS Version 2.1. Reference Manual, Oracle Corporation, 1988, U.S.A.

***SQL*PLUS Version 2.1. Reference Card, Oracle Corporation, 1988, U.S.A.

Similar Posts