Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gestiunea informaticii.doc
Скачиваний:
7
Добавлен:
01.05.2025
Размер:
886 Кб
Скачать
☆

If…then…else Sintaxa:

IF <expresieL> <comenzi1>

[ELSE <comenzi2>] ENDIF

DO CASE...CASE...ENDCASE Sintaxa:

DO CASE CASE <expresieL1> <comenzi>

CASE <expresieL2> <comenzi> Otherwhise Instr_K ENDCASE

Structuri repetitive – determină un grup de instrucţiuni să se execute de un număr anumit de ori într-un set de instr.

DO WHILE...ENDDO Sintaxa:

DO WHILE <exp_log> <instr> [LOOP]

[EXIT] ENDDO

Clauza LOOP determină ieşirea forţată din execuţia secvenţei de comenzi şi trecerea la reevaluarea condiţiei exprimată de <expresieL>. Asfel se parcurge doar o parte din operaţiunile specificate prin comenzile scrse între DO WHILE şi ENDDO.

Clauza EXIT determină, la fel, ieşirea forţată din execuţia secvenţei de comenzi dar transferă controlul la următoarea comandă de după ENDDO. Deci se iese din structura repetitivă.

SCAN...ENDSCAN - Tip special de instr repetitivă, folosită doar pentru fişierele de date. Sintaxa:

SCAN [NOOPTIMIZE] [domeniu]

[FOR <expL1>] [WHILE <expL2>] <instrucţiuni> [LOOP] [EXIT] ENDSCAN

Loop – se utilizează p-u a reveni la condiţia di ciclul while. Ea returnează la condiţia din ciclu.

DO FOR...ENDFOR Sintaxa:

FOR <variabila_mem> = <exprN1> TO <exprN2> [STEP<exprN3>] <comenzi> [LOOP] [EXIT] ENDFOR ¦ NEXT

Expresia numerică <exprN1> reprezintă valoarea iniţială a variabilei de control, expresianumerică <exprN2> e valoarea finală a var de control, iar <exprN3> reprezintă incrementul.

SCAN...END SCAN - se deplasează pe c înregistrări care satisfac condiţia din instrucţiene. Dacă condiţia nu este indicată atunci ciclul poate să se deplaseze prin toate înregistrările de la cea activă. Sintaxa: SCAN [domeniu][FOR condiţie] corpul ciclului END SCAN

FOR şi WHILE – verifică toate înreg.

SCAN – numai pe cele necesare. Ex:

USE student | GO TOP | SCAN FOR n_med > 5 | ? n.p. | GO BOTTOM | END SCAN

39

Programarea în limbajul foxpro. Subprograme. Proceduri şi funcţii

Subprogramele create se compileaza si se depun ca obiecte in baza de date. Ele pot fi apelate de orice utilizator fiindca nu apartin programului ci sistemului BD.

Un subprogram se pastreaz intr-o singura copie in mem indiferent de nr de utilizatori care il apeleaza. Fiecarui utilizator i se aloca o zona pentru parametrii codul programului fiind reentrant.

Avantajele utilizarii subprogramelor:

  • Programare modulara cu facilitati de a lucra in echipa pe task-uri;

  • Productivitatea programarii ridicata;

  • Facillitati de dezvoltare a aplicatiei prin adaugare procedure;

  • Programul usor de urmarit apeland subprograme din programul principal;

  • Performata ridicata prin pastrarea subprogramelor in memorie;

  • Creste securitatea BD prin posibilitatea de a da drepturi doar de executie unui utilizator pe un subprogram si nu drepturi de acces la tabelele BD;

  • Subprogramul poate lucra cu drepturile utlizatorului a celui care l-a definit;

Sintaxa de creareare a une proceduri:

[CREATE [OR REPLACE] IN CURENT_USER PROCEDURE nume _procedura (par1 OUT tip [:=expr] [AUTHID DEFINER ] IN OUT AS Var1 tip1; -- declaratii variabile, recorduri si cursoare locale Var2 tip2; Cursor c1 AS SELECT.....; BEGIN Comenzi executabile... ....... EXCEPTION Comenzi tratare erori ....... END nume_procedura;

Procedurile fara CREATE sunt proceduri standard si nu se memoreaza.

Sintaxa crearii functiei e asemanatoare cu cea procedurii. Ea return o singura val si poate fi utiliz ca oper in expresii.

40

Programarea în limbajul FoxPro. Realizarea actualizării datelor prin instrucţiuni. Stabilirea relaţiilor între tabele.

RELAŢII ÎNTRE TABELE Între tabele apar relaţii, adică legături orientate care determină ca orice repoziţionare a cursorului în primul tabel (tabel-părinte) să atragă după sine o repoziţionare a cursorului în cel de-al doilea tabel (tabel-copil). Pentru ca să se poată realiza o relaţie, este necesar ca între cele două tabele să existe un câmp comun.

Tipuri de relatii: | 1>1 | 1>n |

SET RELATION – creează relaţii 1>1

SET RELATION TO

[<expr1>I NTO <expN1> | <expC1>

[, <expr2>I NTO <expN2> | <expC2> ...]

[ADDITIVE]] Idnume Prenume

Ex: Tablea Client, Tabela comanda