Scrigroup - Documente si articole

     

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


BAZA DE DATE DB2 pentru iSeries 400 - Limba Cobol

baze de date



+ Font mai mare | - Font mai mic



BAZA DE DATE DB2 pentru iSeries 400



Cap. I

GENERALITATI

Baza de date din AS400 este DB2 - Universal Data Base. DB2 este o baza de date relationala. Ceea ce diferentiaza DB2 de alte sisteme de gestiune a bazelor de date, este faptul ca DB2 este integrata in sistemul de operare al AS400 si include functii interne ale AS400 care asigura integritatea referentiala si prelucrarea datelor in acelasi timp de catre mai multi utilizatori. Este o baza de date universala putand fi utilizata de toate tipurile de programe care ruleaza pe AS400, asigurandu-se astfel unicitatea datelor.

INTERFETE PENTRU PRELUCRAREA DATELOR

DB2 UDB ofera mai multe interfete de prelucrare a datelor:

a)-Interfata clasica a sistemului AS400 include:

-DDS (Data Descriptions Specifications) - utilitar de descriere a datelor fisierelor fizice, fisierelor logice, ecranelor si printerelor;

-Comenzi CL (Control Language) - care permit crearea obiectelor;

-SEU (Source Entry Utility) - care permite introducerea si modificarea surselor;

-IDDU (Interactive Data Description Utility) - utilitar care permite crearea de dictionare, definirea fisierelor, crearea fisierelor etc.

b)-Interfata SQL (Structured Query Language) - limbaj structurat de interogare care permite crearea tabelelor, afisarea, modificarea, stergerea datelor.

c)-Operations Navigator ofera o interfata grafica Microsoft Windows pentru prelucrarea datelor.

d)-Utilitarul Query pentru iSeries - tot un limbaj de interogare care permite realizarea de analize, rapoarte sau crearea de fisiere de date.

STRUCTURA BAZEI DE DATE IN AS400

a)-Campul (coloana in SQL) - reprezinta un grup de valori care au un nume unic, acelasi tip si aceeasi lungime . Cu ajutorul campului se poate descrie un atribut al unui obiect.

b)-Inregistrarea (randul din perspectiva SQL) - reprezinta un grup de campuri care luate impreuna descriu caracteristicile unui obiect. Formatul de inregistrare reprezinta descrierea tuturor campurilor din inregistrare (lungime, tip) precum si aranjarea lor in cadrul inregistrarii.

c)-Fisierul (tabela in SQL) - reprezinta un grup de inregistrari ce au un nume unic. Descrierea fisierului contine descrierea formatului de inregistrare precum si caile de acces utilizate

d)-Valoarea (in SQL) - la intersectia unui rand cu o coloana se afla o data specifica numita valoare.

FISIERELE BAZEI DE DATE

a)-Fisiere fizice (type:*FILE , Atribut:PF) (tabela in SQL) - sunt fisiere de date, ele se folosesc pentru stocarea informatiilor. Un fisier fizic are un singur format de inregistrare. Formatul de inregistrare are o lungime fixa si contine campuri de diferite lungimi.

b)-Fisiere logice (type:*FILE , Atribut:LF) (view sau index in SQL) - nu contin date, descriu modul in care inregistrarile provenite din unul sau mai multe fisiere fizice sunt prezentate sau receptionate de un program. Un fisier logic poate schimba ordinea campurilor sau poate prezenta doar anumite campuri din fisierele fizice.

Fisierele logice sunt de mai multe tipuri:

-simple - care folosesc inregistrari dintr-un singur fisier fizic;

-join - combina intr-un singur format campuri din doua sau mai multe fisiere fizice;

-multiplu format - folosesc in mai multe formate de inregistrare campuri din doua sau mai multe fisiere fizice.

c)-Fisiere sursa (Atribut:PF-SRC) - contin descrierea obiectelor bazei de date. Pe baza acestor descrieri sistemul creeaza obiectele. Un fisier sursa are mai multi membri. Membrii unui fisier sursa sunt descrieri de fisiere fizice, logice, display, printer sau coduri program.

MODURI DE DESCRIERE A FISIERELOR IN DB2

Exista doua moduri de descriere a fisierelor:

a)-descriere la nivel de camp - fiecare camp al formatului de inregistrare este descris (pentru fiecare camp se precizeaza numele, lungimea, tipul). Fisierele cu descriere la nivel de camp sunt referite in programe ca fisiere descrise extern.

b)-descriere la nivel de inregistrare - Se precizeaza doar lungimea formatului de inregistrare. Sistemul nu va cunoaste numele si lungimea campurilor. Acestea vor fi descrise in program. Fisierele cu descriere la nivel de inregistrare sunt referite in programe ca fisiere descrise prin program.

Indiferent de modul de descriere, este obligatoriu sa descriem si sa cream fisierul inainte de a compila un program care foloseste un fisier.

In cazul in care un program utilizeaza un fisier descris la nivel de camp, programul va prelua o data cu fisierul si descrierea campurilor. In momentul compilarii, descrierea campurilor este copiata in program (in obiect).

In cazul in care un program utilizeaza un fisier descris la nivel de inregistrare, este necesara descrierea fiecarui camp (nume, lungime, tip) in interiorul programului.

Daca se modifica formatul de inregistrare al unui fisier descris prin program (la nivel de inregistrare), trebuie modificat fiecare program care a utilizat fisierul respectiv.

In schimb, daca se modifica un fisier descris extern, modificarea se face intr-un singur loc si este valabila pentru toate programele. Programele trebuie insa recompilate.

Descrierea unui fisier contine doua parti:

-formatul de inregistrare

-calea de acces

a)-Formatul de inregistrare descrie ordinea campurilor in cadrul inregistrarii. De asemenea, descrie fiecare camp in detaliu: nume, lungime si tip.

b)-Calea de acces descrie ordinea in care inregistrarile trebuie prelucrate. Inregistrarile sunt memorate la nivel fizic in ordinea in care sunt furnizate sistemului din mediul extern. Exista doua tipuri de acces la inregistrari:

-Acces secvential - inregistrarile sunt citite in ordinea in care au fost scrise in fisier;

-Acces indexat - inregistrarile sunt ordonate in functie de continutul unuia sau mai multor campuri din inregistrare. Campurile utilizate pentru obtinerea unei cai de acces se numesc campuri cheie.

OPERATII CU BAZA DE DATE RELATIONALA DB2

a)-Afisarea inregistrarilor

b)-Selectia inregistrarilor - filtrarea inregistrarilor unui fisier in functie de anumite criterii

c)-Uniunea - inregistrarile din doua sau mai multe fisiere cu aceeasi structura sunt unite vertical.

d)-Legarea fisierelor (Join) - Doua sau mai multe fisiere care au campuri comune se unesc orizontal. Legatura se va realiza prin campul (campurile) comune.

Cap. II

CREAREA SI DESCRIEREA

FISIERELOR BAZEI DE DATE DB2

Exista mai multe utilitare care permit crearea si descrierea fisierelor bazei de date:

-utilitarul IDDU (Interactive Data Definition Utility)

-comenzi CL (Control Language) si utilitarul SEU (Source Entry Utility) care permit introducerea specificatiilor de descriere a datelor (DDS) (Data Desciptions Specifications)

-utilitarul SQL - limbaj structurat de interogare

-Operations Navigator - interfata grafica Windows

Vom prezenta metoda de descriere si de creare a bazei de date folosind comenzile CL si utilitarul DDS.

Crearea unui fisier folosind comenzile CL si DDS presupune urmatorii pasi:

1)-Crearea unei biblioteci (Library)

2)-Crearea fisierului sursa

3)-Descrierea fisierului fizic cu DDS

4)-Crearea fisierului fizic descris anterior

5)-Descrierea prin DDS a fisierelor logice

6)-Crearea fisierelor logice

CREAREA UNEI BIBLIOTECI

O biblioteca este un obiect al sistemului care serveste ca director pentru celelalte obiecte. Identificatorul acestui tip de obiect este *LIB. O biblioteca se creeaza cu comanda CL: CRTLIB (Create Library).

CREAREA FISIERULUI FIZIC SURSA

Fisierul fizic sursa contine descrierea obiectelor bazei de date. Pe baza acestor descrieri sistemul creeaza obiectele. Componentele unui fisier fizic sursa se numesc membri. Un fisier fizic sursa contine descrieri de fisiere fizice, fisiere logice, fisiere display, meniuri, fisiere printer, comenzi, programe.

Urmatoarele tipuri de obiecte se pot crea numai cu ajutorul unui fisier sursa:

-programele de nivel inalt

-programele CL (Control Language)

-fisierele logice

-comenzile

-fisierele de comunicatie intersistem ICF

Pentru urmatoarele obiecte nu este obligatorie folosirea unui fisier sursa:

-fisiere fizice

-fisiere display

-fisiere printer

Fisierul fizic sursa se creeaza cu comanda CRTSRCPF.

IBM foloseste urmatoarele fisiere sursa implicite:

QDDSSRC - pentru fisiere (fizice, logice, printer, display)

QRPGSRC - pentru programe RPG

QCBLSRC si QLBLSRC - pentru programe COBOL

QCLSRC - pentru programe CL

QCSRC - pentru programe C

QREXSRC - pentru programe REX

QCBLLESRC - pentru programe ILE COBOL

QRPGLESRC - pentru programe ILE RPG

DESCRIEREA FISIERELOR FIZICE CU DDS

Conventii de denumire (pentru fisiere, campuri, formate de inregistrare):

-primul caracter obligatoriu alfabetic: A-Z,

-urmatoarele pot fi A-Z, , $, #, _, 0-9. Se poate folosi liniuta de subliniere, dar nu se pot folosi semnele: -, +, *, /

-lungimea maxima este de 10 caractere

-numele unui camp trebuie sa fie unic intr-un format de inregistrare

-numele unui format de inregistrare trebuie sa fie unic in fisier

-numele fisierului trebuie sa fie unic intr-o biblioteca

Descrierea DDS a unui fisier fizic poate avea 4 nivele:

-nivel fisier (optional)

-nivel format de inregistrare

-nivel camp

-nivel camp cheie (optional)

Informatiile DDS la nivel de fisier sunt valabile pentru intregul fisier. La acest nivel se poate specifica, de exemplu, cuvantul cheie UNIQUE ceea ce va asigura unicitatea valorii din campul cheie.

Informatiile DDS la nivel de format de inregistrare contin numele formatului de inregistrare.

Informatiile la nivel de camp contin denumirea campurilor, tipul si lungimea campurilor, si optional o descriere text pentru camp (TEXT sau COLHDG).

La nivel de camp cheie se indica numele campurilor cheie.

Putem avea urmatoarele tipuri de campuri:

A - caracter

P - zecimal impachetat

S - numeric

B - binar

F - virgula flotanta

H - hexazecimal

L - data calendaristica

T - timp

Z - data-timp

Reguli de sintaxa in DDS

- Toate intrarile DDS se scriu cu majuscule, exceptie facand caracterele cuprinse intre apostrofuri, precum si numele incluse intre paranteze

- Parametrii cuvintelor cheie sunt intotdeauna inclusi intre paranteze

- Paranteza initiala incepe intotdeauna imediat dupa cuvantul cheie

- Despartirea cuvintelor cheie se face cu spatiu

- Valorile speciale incep cu *

- Parametrii cuvintelor cheie din interiorul parantezelor se separa cu spatiu

Cu DDS putem descrie urmatoarele tipuri de fisiere:

- fizice

- logice

- display

- printer

Formularul DDS este alcatuit din 80 de coloane care sunt impartite in 8 zone cu functii specifice:

Zona 1 Coloanele 1-5 - numar de secventa

Coloana 6 - tipul formatului

Zona 2 Coloanele 7-16

Un * in pozitia 7 marcheaza o linie de comentariu.

Daca in pozitia 7 se trece A (AND) sau O (OR), atunci pozitiile 8-16 vor contine conditii DDS. Aceste conditii nu sunt valabile pentru fisiere fizice si logice.

Zona 3 Coloana 17 + Coloana 18 (spatiu) + Coloanele 19-28

In pozitia 17 putem avea:

R - pentru un format de inregistrare

Blanc - pentru un camp

K- pentru un camp cheie (doar pentru fisiere fizice sau logice)

S - pentru un camp de selectie (doar pentru fisiere logice)

O - pentru un camp de omitere (doar pentru fisiere logice)

J - pentru specificatii JOIN (doar pentru fisiere logice JOIN)

H - pentru specificatii HELP (numai pentru fisiere display)

In pozitiile 19-28 avem, in functie de pozitia 17, numele formatului de inregistrare / numele campului de date / numele campului cheie / numele campului de selectie sau omitere etc.

Zona 4 Coloana 29

In aceasta pozitie se poate trece litera R in cazul campurilor care sunt descrise in fisiere de referinta.

Zona 5 In aceasta zona se specifica atributele campului:

Coloanele 30-34 - lungimea campului

Coloana 35    - tipul campului

Coloanele 36-37 - numarul de zecimale

Zona 6 Coloana 38

In aceasta coloana se poate specifica modul de utilizare a campului:

I - intrare

O - iesire

B - intrare-iesire

H - campuri ascunse (HIDDEN) pentru fisiere display

M - campuri tip mesaj pentru fisiere display

Zona 7 Specifica pozitionarea campului pe ecran sau pe pagina tiparita:

Coloanele 39-41 - linia

Coloanele 42-44 - coloana

Se folosesc pentru fisierele display si printer.

Zona 8 Coloanele 45-80

Cuprinde functiile DDS.

CREAREA FISIERELOR FIZICE

Se face cu comanda CRTPF.

Exercitii

.-Se creeaza CLASSPF - fisier clase (cursuri)

TEXT este informativ. COLHDG se afiseaza in rapoarte si display. Se recomanda ca textul din COLHDG sa nu fie mai lung decat lungimea datei. Se va trece textul pe doua randuri: COLHDG('Cod' 'Curs').

Fisierul CLASSPF va avea descrierea:

R CLASSREC

CRSCODE 4 TEXT('Course Code')

COLHDG('Crs ' 'Code')

CRSTITLE 7 TEXT('Course Title')

COLHDG('Course' 'Title')

INSTNO 3 TEXT('Instructor Number')

COLHDG('Ins' 'No')

INSTLNAME 7 TEXT('Instructor Last Name')

COLHDG('Instr' 'Name')

K CRSCODE

.-Se creeaza GRADEPF98 (Notele anului 1998)

Folosind aceeasi sursa se va crea GRADEPF99 (Notele anului 1999). Atentie la compilare! Trebuie schimbat numele obiectului care in mod implicit este acelasi cu numele membrului sursa.

Fisierul GRADEPF98 va avea descrierea:

R GRADEREC

CRSCODE 4 TEXT('Course Code')

COLHDG('Crs ' 'Code')

CLSYR 4 TEXT('Class Year')

COLHDG('Cls' 'Yr')

CLSQTR 1 0 TEXT('Class Quarter')

COLHDG('Cls' 'Qtr')

STUDNO 3 TEXT('Student Number')

COLHDG('Stu' 'No')

STUDLNAME 7 TEXT('Student Last Name')

COLHDG('Student' 'Name')

GRADE 3 0 TEXT('Student Grade')

COLHDG('Stu' 'Grd')

ALWNULL

K CRSCODE

K STUDNO

.-Dupa ce s-au creat obiectele, ne uitam in biblioteca pentru a le vedea.

.-Se copiaza cu *ADD CLASSPF, GRADEPF98 si GRADEPF99 din FAC00.

DESCRIEREA DDS A FISIERELOR LOGICE

Fisierele logice nu contin date. Ele descriu modul in care inregistrarile continute in unul sau mai multe fisiere fizice vor fi prezentate cu ajutorul unui program scris de utilizator. Programele utilizeaza fisierele logice la fel ca si pe cele fizice.

Cu ajutorul fisierelor logice se pot realiza urmatoarele operatii asupra bazei de date:

a)-Projection - Selectarea anumitor campuri din PF

b)-Union - Unirea inregistrarilor din doua sau mai multe fisiere fizice

c)-Selection - Filtrarea inregistrarilor unui PF (se selecteaza inregistrari dupa anumite criterii)

d)-Sequencing - Sortarea inregistrarilor PF (afisarea in ordine crescatoare sau descrescatoare dupa anumite campuri)

e)-Joining - Legarea a doua sau mai multe PF pe baza unui camp comun.

Descrierea DDS a fisierelor logice are urmatoarele nivele:

a)-nivel fisier - specificatii valabile pentru intregul fisier.

Specificatiile la nivel de fisier sunt optionale. Exemplu: UNIQUE care asigura unicitatea valorii dintr-un camp cheie.

b)-nivel inregistrare - obligatoriu.

Daca formatul de inregistrare al fisierului logic este identic cu formatul de inregistrare al PF vom utiliza in fisierul logic acelasi nume pentru formatul de inregistrare ca si in fisierul fizic. In zona cuvintelor cheie se va folosi una din functiile PFILE (pentru logic simplu sau multiplu format) sau JFILE (pentru fisier logic tip JOIN).

Daca formatul de inregistrare difera de cel al fisierului fizic, si numele formatului de inregistrare va trebui sa fie diferit.

Numele specificate in functiile PFILE si JFILE sunt nume de fisiere fizice pe care se bazeaza fisierul logic.

c)-nivel camp - optional

Daca formatul de inregistrare al fisierului logic este identic cu cel al fisierului fizic, nu mai este necesara precizarea campurilor. In schimb, daca formatul de inregistrare este diferit, va trebui sa precizam campurile. Se pot selecta doar anumite campuri din fisierul fizic. Ordinea campurilor poate fi diferita de cea din fisierul fizic. Putem redenumi campurile fisierului fizic folosind cuvantul cheie RENAME, sau putem combina campurile fisierului fizic folosind CONCAT.

Tot la nivel de camp se poate preciza modul de utilizare a campurilor din fisierul logic:

-pentru intrare (INPUT)

-pentru iesire (OUTPUT)

-pentru intrare-iesire (BOTH)

Valoarea implicita pentru fisierele logice simple si multiplu format este B (intrare-iesire), iar pentru JOIN este I (intrare).

d)-nivel de campuri cheie - optional

Daca nu se specifica nici un camp cheie, vom avea o cale de acces secventiala. Inregistrarile vor fi prezentate in ordinea in care au fost scrise in fisierul fizic.

Se pot preciza mai multe campuri cheie, prima cheie va fi cheia primara, iar urmatoarele chei vor fi chei secundare.

e)-nivelul campurilor de selectie sau omitere - optional - doar pentru fisiere logice

Pentru a realiza o selectie sau o omitere, in pozitia 17 din DDS se va trece S pentru selectie sau O pentru omitere, iar in pozitiile incepand de la 45 se trece unul din cuvintele cheie: VALUE, RANGE sau CMP.

VALUE - continutul campurilor este cautat intr-o lista de maxim 100 de valori. Daca valoarea este gasita, inregistrarea este selectata (S) sau omisa (O).

RANGE - continutul campurilor este comparat cu o limita inferioara si o limita superioara. Daca valoarea campului este inclusa in acest interval (domeniu) inregistrarea va fi selectata / omisa.

CMP - continutul campurilor este comparat cu o singura valoare sau cu continutul altui camp.

Exemplu: CMP(EQ '10')

Pentru comparatie se foloseste: EQ =

NE

LT <

GT >

LE <=

GE >=

Daca se indeplineste conditia, inregistrarea va fi selectata / omisa.

Exemple

.-Fisier logic GRADELF (Selectie si sortare)

-acelasi format de inregistrare ca si GRADEPF99

-ordonare dupa STUDNO

-se selecteaza doar inregistrarile pentru care CRSCODE='L001'

Fisierul GRADELF va avea descrierea:

R GRADEREC PFILE(GRADEPF99)

K STUDNO

S CRSCODE CMP(EQ 'L001')

.-Fisier logic GRADE9899U (Uniune, Projection, Sequence)

Nu se iau toate campurile, sortare dupa STUDNO.

R YRSTUGRD PFILE(GRADEPF98 GRADEPF99)

CRSCODE

CLSYR

CLSQTR

STUDNO

GRADE

K STUDNO

Se observa ca nu s-a luat campul STUDLNAME.

TIPURI DE FISIERE LOGICE

a)-Fisiere logice simple - folosesc inregistrari dintr-un singur fisier fizic. Se pot folosi in programe pentru introducerea, modificarea sau stergerea datelor din fisierul fizic.

Exemple

Sa se creeze fisierul logic simplu CLASSLF cu acelasi format de inregistrare ca si CLASSPF, dar campul cheie va fi CRSTITLE. Acest fisier se va folosi pentru afisarea cursurilor in ordine alfabetica dupa titlul cursului.

Fisierul CLASSLF va avea descrierea:

R CLASSREC PFILE(CLASSPF)

K CRSTITLE

Observatie: Deoarece formatul de inregistrare al LF are acelasi nume cu formatul de inregistrare al PF, nu este necesara precizarea campurilor.

Sa se creeze fisierul logic simplu CLASSLF2, bazat pe fisierul fizic CLASSPF, care sa contina doar campurile CRSTITLE si INSTLNAME si care sa aiba ca si camp cheie INSTLNAME. Se vor afisa numele cursului si numele instructorului in ordine alfabetica dupa numele instructorului.

Fisierul CLASSLF2 va avea descrierea:

R CLASSREC2 PFILE(CLASSPF)

CRSTITLE

INSTLNAME

K INSTLNAME

Observatie: Formatul de inregistrare al LF este diferit de formatul de inregistrare al PF, deci a fost necesara precizarea campurilor.

Sa se creeze fisierul logic GRADELF99 care are acelasi format de inregistrare ca si fisierul fizic GRADEPF99 si care indeplineste urmatoarele conditii:

-inregistrarile sunt afisate in ordine descrescatoare dupa GRADE

-sunt selectate doar inregistrarile pentru care CRSCODE='L001'

Fisierul GRADELF99 va avea descrierea:

R GRADEREC PFILE(GRADEPF99)

K GRADE DESCEND

S CRSCODE CMP(EQ 'L001')

b)-Fisiere logice de uniune (UNION)

Un fisier logic de uniune reuneste intr-un singur fisier inregistrarile din doua sau mai multe fisiere fizice.

Se pot selecta doar campurile care exista in ambele fisiere (putem selecta toate campurile comune sau doar o parte dintre ele).

Daca fisierele fizice reunite au acelasi format de inregistrare si dorim sa selectam toate campurile, in descrierea DDS a fisierului logic nu este necesara precizarea campurilor.

In cuvantul cheie PFILE se vor preciza ca si parametri, fisierele fizice reunite. In programe, fisierele logice de uniune permit introducerea, modificarea, stergerea datelor.

Exemple

Sa se creeze fisierul logic de uniune GRADE9899 care contine toate campurile fisierelor fizice GRADEPF98 si GRADEPF99, are acelasi format de inregistrare ca si cele doua fisiere fizice si care ordoneaza inregistrarile dupa campul STUDNO.

Fisierul GRADE9899 va avea descrierea:

R GRADEREC PFILE(GRADEPF98 GRADEPF99)

K STUDNO

Sa se creeze fisierul logic de uniune GRADE9899U care reuneste inregistrari din fisierele fizice GRADEPF98 si GRADEPF99, si care contine campurile CRSCODE, CLSYR, CLSQTR, STUDNO, GRADE si care ordoneaza inregistrarile in ordine descrescatoare dupa campul GRADE.

Fisierul GRADE9899U va avea descrierea:

R GRADERECU PFILE(GRADEPF98 GRADEPF99)

CRSCODE

CLSYR

CLSQTR

STUDNO

GRADE

K GRADE DESCEND

c)-Fisiere logice de tip JOIN

Fisierul logic de tip JOIN combina intr-un singur format de inregistrare campuri din doua sau mai multe fisiere fizice (pana la 32 de fisiere fizice). Fisierul logic de tip JOIN se poate utiliza doar pentru afisarea datelor din fisierele fizice. Nu se pot modifica datele din fisierele fizice folosind un fisier logic de tip JOIN. Fisierele logice de tip JOIN au un singur format de inregistrare.

Descrierea DDS a fisierului JOIN poate avea 6 nivele :

1.-nivel fisier - optional

2.-nivel inregistrare - obligatoriu

3.-nivel JOIN

4.-nivel camp - obligatoriu

5.-nivel camp cheie

6.-nivel camp S sau O (optional)

Crearea fisierului logic de tip JOIN presupune parcurgerea urmatorilor pasi:

-Se introduc specificatiile la nivel de fisier (optional). Exemplu: JDFTVAL

-Se introduce formatul de inregistrare. In zona cuvintelor cheie se va utiliza cuvantul cheie JFILE avand ca parametri fisierele fizice pe care se realizeaza JOIN-ul. Primul fisier fizic specificat in JFILE va fi fisierul primar.

-Se introduc specificatiile de JOIN pentru fisierele fizice luate doua cate doua. Pentru aceasta, in pozitia 17 din DDS (campul Name Type) se trece litera J, dupa care in zona cuvintelor cheie se specifica pe rand fisierele fizice intre care se realizeaza JOIN-ul, precum si campurile dupa care se realizeaza JOIN-ul. Pentru a specifica.fisierele se foloseste cuvantul cheie JOIN, iar pentru a specifica campurile de legatura, cuvantul cheie JFLD.

-Se precizeaza campurile din fisierele fizice care dorim sa apara in fisierul logic JOIN. Daca un camp exista in mai multe fisiere fizice este obligatorie specificarea fisierului fizic din care provine campul, cu ajutorul functiei JREF.

-Optional, se pot specifica campuri cheie sau campuri de selectie sau omitere.

-campurile cheie se pot specifica doar din fisierul primar

-campurile S si O pot proveni din oricare dintre fisierele specificate in cuvantul cheie JFILE.

Exista doua tipuri de JOIN:

-INNER JOIN - Se iau doar acele inregistrari din fisierul primar pentru care valoarea din campul de legatura este egala cu valoarea din campul de legatura al fisierului secundar. Pentru a preciza ordinea inregistrarilor se poate specifica in nivelul de JOIN cuvantul cheie JDUPSEQ urmat de numele campului dupa care se face ordonarea.

-LEFT OUTER JOIN - Se iau toate inregistrarile din fisierul primar indiferent daca valoarea din campul de legatura se regaseste sau nu in fisierul secundar. In cazul in care valoarea din campul de legatura din fisierul primar nu se regaseste in campul de legatura al fisierului secundar, campurile care provin din fisierul secundar se vor completa cu valorile implicite (spatiu sau zero). Pentru a crea un fisier logic de tip LEFT OUTER JOIN trebuie specificat la nivel de fisier cuvantul cheie JDFTVAL.

Exemple

Sa se creeze fisierul logic de tip INNER JOIN care respecta urmatoarele conditii:

-numele fisierului CLSGRDIJ99

-formatul de inregistrare CLSGRDFMT

-fisierele fizice intre care se realizeaza legatura: CLASSPF si GRADEPF99

-campul de legatura intre cele doua fisiere este CRSCODE

-fisierul JOIN va contine campurile:

-CRSCODE (din CLASSPF)

-CRSTITLE

-INSTLNAME

-GRADE

-campul cheie CRSCODE

-inregistrarile care au aceeasi valoare a campului de legatura vor fi ordonate dupa campul STUDLNAME.

Fisierul CLSGRDIJ99 va avea descrierea:

R CLSGRDFMT JFILE(CLASSPF GRADEPF99)

J JOIN(CLASSPF GRADEPF99)

JFLD(CRSCODE CRSCODE)

JDUPSEQ(STUDLNAME)

CRSCODE JREF(CLASSPF)

CRSTITLE

INSTLNAME

STUDLNAME

GRADE

K CRSCODE

Fie in CLASSPF inregistrarile:

Crs Course Ins Instr

Code Title No Name

L001 ITALIAN 001 DANTE

L103 ENGLISH 002 HIGGINS

L211 SPANISH 003 PICASSO

L214 GREEK 004 HOMER

L303 CHINESE 005 TSUNG

Fie in GRADEPF99 inregistrarile:

Crs Cls Cls Stu Student Stu

Code Yr Qtr No Name Grd

L001 1999 1 102 LAUPER 72

L001 1999 1 103 TURNER 79

L001 1999 1 101 BOWIE 93

L103 1999 1 101 BOWIE 62

L214 1999 2 108 NELSON 97

L410 1999 1 106 HOLIDAY 75

L303 1999 3 107 STING 86

L001 1999 2 105 MADONNA -

L001 1999 3 107 STING -

Atunci in CLSGRDIJ99 vom avea inregistrarile:

Crs Course Instr Student Stu

Code Title Name Name Grd

L001 ITALIAN DANTE BOWIE 93

L001 ITALIAN DANTE LAUPER 72

L001 ITALIAN DANTE MADONNA -

L001 ITALIAN DANTE STING -

L001 ITALIAN DANTE TURNER 79

L103 ENGLISH HIGGINS BOWIE 62

L214 GREEK HOMER NELSON 97

L303 CHINESE TSUNG STING 86

Sa se creeze fisierul logic de tip LEFT OUTER JOIN. Fisierul se va numi CLSGRDOJ99 si va indeplini aceleasi conditii ca si fisierul INNER JOIN creat anterior.

Fisierul CLSGRDOJ99 va avea descrierea:

JDFTVAL

R CLSGRDFMT JFILE(CLASSPF GRADEPF99)

J JOIN(CLASSPF GRADEPF99)

JFLD(CRSCODE CRSCODE)

JDUPSEQ(STUDLNAME)

CRSCODE JREF(CLASSPF)

CRSTITLE

INSTLNAME

STUDLNAME

GRADE

K CRSCODE

Cu fisierele CLASSPF si GRADEPF99 de la INNER JOIN, fisierul CLSGRDOJ99 va contine inregistrarile:

Crs Course Instr Student Stu

Code Title Name Name Grd

L001 ITALIAN DANTE BOWIE 93

L001 ITALIAN DANTE LAUPER 72

L001 ITALIAN DANTE MADONNA -

L001 ITALIAN DANTE STING -

L001 ITALIAN DANTE TURNER 79

L103 ENGLISH HIGGINS BOWIE 62

L211 SPANISH PICASSO -

L214 GREEK HOMER NELSON 97

L303 CHINESE TSUNG STING 86

d)-Fisiere logice multiplu format

Fisierele logice multiplu format folosesc in doua sau mai multe formate de inregistrare campuri si inregistrari din doua sau mai multe fisiere fizice.

Fiecare format de inregistrare al unui fisier logic multiplu format va fi asociat unui fisier fizic cu ajutorul cuvantului cheie PFILE. In fiecare format de inregistrare al fisierului fizic multiplu format este obligatorie specificarea campurilor cheie in aceeasi ordine in care sunt specificate in fisierele fizice asociate. Va trebui sa existe o cheie comuna pentru toate formatele de inregistrare, prin aceasta cheie facandu-se legatura intre fisierele fizice asociate.

Fisierul logic multiplu format permite introducerea, modificarea, stergerea datelor in fisierele fizice.

Exemplu

Sa se creeze fisierul logic multiplu format ROSTERLF care contine formatele de inregistrare CLASSREC din fisierul fizic CLASSPF si GRADEREC din fisierul fizic GRADEPF.

Fisierul ROSTERLF va avea descrierea:

R CLASSREC PFILE(CLASSPF)

K CRSCODE

R GRADEREC PFILE(GRADEPF99)

K CRSCODE

K STUDNO

Cu continutul anterior al fisierelor fizice, ROSTERLF va contine inregistrarile:

L001 ITALIAN 001 DANTE

L001 101 1999 1 BOWIE 93

L001 102 1999 1 LAUPER 72

L001 103 1999 1 TURNER 79

L001 105 1999 2 MADONNA -

L001 107 1999 3 STING -

L103 ENGLISH 002 HIGGINS

L103 101 1999 1 BOWIE 62

L211 SPANISH 003 PICASSO

L214 GREEK 004 HOMER

L214 108 1999 2 NELSON 97

L303 CHINESE 005 TSUNG

L303 107 1999 3 STING 86

L410 106 1999 1 HOLIDAY 75

Prin comanda DSPDBR se afiseaza fisierele logice ale unui fisier fizic.

CREAREA FISIERELOR LOGICE

Se face cu comanda CRTLF.

UTILIZAREA FISIERELOR DE REFERINTA

Fisierul de referinta este un fisier fizic care nu contine date si nu are campuri cheie. Fisierul fizic de referinta contine doar descrieri de campuri. Poate contine descrierea tuturor campurilor utilizate in aplicatie. Astfel, fiecare camp din aplicatie va avea o descriere unica si se va reduce efortul de codificare DDS in momentul crearii fisierelor fizice sau logice ale aplicatiei.

Pentru crearea unui fisier de referinta se foloseste comanda CRTPF.

Exemplu

Sa se creeze fisierul de referinta SCHOOLREF care contine descrierea tuturor campurilor din fisierele CLASSPF si GRADEPF98 (sau GRADEPF99):

R SCHOOLFMT

*CAMPURI PENTRU CLASSPF

CRSCODE 4A COLHDG('Cod' 'Curs')

CRSTITLE 7A COLHDG('Titlu' 'Curs')

INSTNO 3A COLHDG('Cod' 'Inst')

INSTLNAME 7A COLHDG('Nume' 'Inst')

*CAMPURI PENTRU GRADEPF

* CRSCODE

CLSYR 4A COLHDG('Anul')

CLSQTR 1S 0 COLHDG('Trim')

STUDNO 3A COLHDG('Cod' 'Stud')

STUDLNAME 7A COLHDG('Nume' 'Stud')

GRADE 3S 0 COLHDG('Nota')

Observatie: CRSCODE s-a definit deja pentru CLASSPF, din aceasta cauza nu se mai defineste si pentru GRADEPF.

CREAREA UNUI FISIER FIZIC UTILIZAND

UN FISIER DE REFERINTA

La nivel de fisier se trece cuvantul cheie REF care va avea ca si parametru numele fisierului de referinta.

La nivel de camp, pentru campurile care sunt descrise in fisierul de referinta se va trece in pozitia 29 din DDS litera R. Nu mai este necesara specificarea lungimii campului, a tipului campului sau a antetului de coloana.

Exemplu

Sa se creeze fisierul fizic CLASSPFR utilizand pentru descrierea campurilor fisierul de referinta SCHOOLREF. Fisierul CLASPFR va avea aceeasi structura ca si CLASSPF.

REF(SCHOOLREF)

R CLASSREC

CRSCODE R

CRSTITLE R

INSTNO R

INSTLNAME R

K CRSCODE

PRINCIPALELE COMENZI UTILIZATE IN LUCRUL

CU FISIERELE FIZICE SI LOGICE

CRTPF - creare fisier fizic

CRTLF - creare fisier logic

DSPFD - afisare descriere fisier

DSPFFD - afisarea descrierii campurilor unui fisier

DSPDBR - afisarea fisierelor logice ale unui fisier fizic

CHGPF - modificarea unui fisier fizic

CPYF - copierea unui fisier fizic

DLTF - stergerea unui fisier

COMANDA CPYF

Permite copierea inregistrarilor dintr-un fisier fizic in alt fisier fizic. Se pot copia toate inregistrarile sau doar inregistrarile care satisfac anumite criterii specificate de utilizator. In comanda CPYF se precizeaza obligatoriu fisierul din care se copiaza inregistrarile si fisierul de destinatie. Daca fisierul in care se copiaza inregistrarile nu exista, la parametrul CRTFILE se specifica *YES. Daca fisierul destinatie exista, la CRTFILE se trece *NO, iar la parametrul MBROPT se va trece *ADD sau *REPLACE.

- *ADD - inregistrarile din fisierul din care se copiaza datele se vor adauga la sfarsitul fisierului destinatie;

- *REPLACE - toate inregistrarile din fisierul destinatie vor fi sterse si inlocuite cu inregistrarile din fisierul din care se copiaza datele.

In cazul in care fisierul din care se copiaza datele are o structura diferita de fisierul destinatie, trebuie specificat *DROP, *MAP sau *NOCHK in parametrul FMTOPT (Record format field mapping).

*DROP se specifica atunci cand exista unul sau mai multe campuri in fisierul sursa care nu exista in fisierul destinatie. Campurile cu acelasi nume din cele doua fisiere trebuie sa aiba aceeasi lungime si sa fie de acelasi tip.

Fisier sursa    FLDA FLDB FLDC FLDD

Fisier destinatie FLDA FLDC FLDD

Precizand FMTOPT(*DROP), se va face copierea datelor din fisierul sursa in campurile corespunzatoare existente in fisierul destinatie. Datele din campurile care nu exista in fisierul destinatie nu vor fi copiate.

*MAP se specifica atunci cand campurile din cele doua fisiere au lungime diferita.

Fisier sursa    FLDA FLDB FLDC FLDD

7 10 12 5

Fisier destinatie FLDA FLDB FLDC FLDD

7 8 15 5

Precizand *MAP, toate valorile numerice vor fi aliniate la dreapta, iar cele alfanumerice la stanga. Daca in fisierul destinatie exista campuri care nu exista in fisierul sursa, aceste campuri se vor umple cu valorile implicite (spatiu sau zero).

*NOCHK - datele sunt copiate dintr-un fisier in celalalt, fara nici o verificare, de la stanga la dreapta, bait cu bait, fara a tine cont de campuri sau de tipul datelor.

Fisier sursa   

Fisier destinatie

Tema

Sa se creeze fisierul fizic FACTG (date generale facturi)

UNIQUE

R RFACTG

NRFACT 10A

DATAFACT 8S 0

CODBEN 10A

K NRFACT

Sa se creeze fisierul fizic FACTP (pozitii facturi)

UNIQUE

R RFACTP

NRFACT 10A

CODPR 10A

CANTIT 10S 3

VAL 16S 2

Sa se creeze fisierul logic FACTGL cu acelasi format de inregistrare ca si FACTG, dar cu inregistrarile ordonate in ordine dupa CODBEN

R RFACTG

K CODBEN

Sa se creeze fisierul INNER JOIN FACTGPJ care contine campurile NRFACT, CODBEN, CODPR, CANTIT si VAL. Inregistrarile cu acelasi NRFACT vor fi ordonate dupa CODPR.

R RFACTGPJ JFILE(FACTG FACTP)

J JOIN(FACTG FACTP)

JFLD(NRFACT NRFACT)

JDUPSEQ(CODPR)

NRFACT JREF(FACTG)

CODBEN

CODPR

CANTIT

VAL

K NRFACT

Sa se creeze fisierul logic multiplu format FACTMF care contine formatul de inregistrare RFACTG din fisierul FACTG si RFACTP din fisierul FACTP.

R RFACTG PFILE(FACTG)

K NRFACT

R RFACTP PFILE(FACTP)

K NRFACT

K CODPR

Cap. III

UTILITARE FOLOSITE PENTRU

DEZVOLTAREA DE APLICATII

Principalele instrumente pe care sistemul le pune la dispozitia utilizatorilor pentru dezvoltarea de aplicatii sunt:

-PDM - Programming developement manager - este un mediu de dezvoltare aplicatii. Permite gestionarea bibliotecilor, a obiectelor si membrilor sursa. Permite accesarea altor utilitare.

-SEU - Source Entry Utility - este un utilitar ce permite introducerea si editarea codurilor sursa. Verifica sintaxa specificatiilor introduse. Unul din formatele SEU este DDS (Data Descriptions Specifications), care se foloseste pentru descrierea fisierelor fizice, logice, printer sau display

-SDA - Screen Design Aid - folosit pentru a crea ecrane si meniuri. Este o interfata interactiva ce usureaza procesul de creare a ecranelor.

-RLU - Report Layout Utility - este un utilitar ce permite definirea formatului rapoartelor tiparite.

-DFU - Data File Utility - utilitar ce permite introducerea, modificarea datelor din fisierele de date.

-ISDB - Interactive Source Debuger - utilitar folosit pentru depanarea interactiva a programelor.

-FCMU - File Compare and Merge Utility - utilitar ce permite compararea fisierelor.

MEDIUL DE DEZVOLTARE APLICATII PDM

Pornirea utilitarului se face cu comanda STRPDM. PDM are mai multe optiuni, cele mai utilizate fiind:

-Work with libraries

-Work with objects

Work with members

In versiunile mai recente ale sistemului de operare OS400, PDM are doar cele trei optiuni de mai sus.

-Optiunea 1 - Lucrul cu biblioteci sau cu liste de biblioteci. Permite urmatoarele operatii asupra unei biblioteci:

-Modificarea

-Copierea

-Afisarea

-Redenumirea

-Afisarea descrierii

-Salvarea

-Restaurarea

-Lucrul cu continutul bibliotecii

-Schimbarea textului

-Rearanjarea listei de biblioteci

-Optiunea 2 - Lucrul cu obiectele unei biblioteci. Permite selectarea unui obiect dintr-o biblioteca prin precizarea numelui si a tipului obiectului. Se pot realiza urmatoarele operatii asupra obiectelor:

-Modificarea

-Copierea

-Stergerea

-Afisarea

-Redenumirea obiectului

-Afisarea descrierii obiectului

-Salvarea

-Restaurarea

-Mutarea

-Lucrul cu obiectul

-Schimbarea textului

-Rularea

-Modificarea cu DFU

-Cautarea unui sir de caractere

-Depanarea

-Compararea

-Optiunea 3 - Lucrul cu membrii unui fisier fizic sursa. Permite selectarea membrului unui fisier sursa, dupa nume si tip si efectuarea urmatoarelor operatii asupra membrului selectat:

-Editarea

-Copierea

-Stergerea

-Afisarea

-Tiparirea

-Redenumirea

-Afisarea descrierii

-Salvarea

-Schimbarea textului

-Compilarea

-Crearea unui modul

-Rularea unei proceduri

-Modificarea utilizand SDA sau RLU

-Cautarea unui sir

-Compararea

-Imbinarea

Vom prezenta in detaliu optiunile si functiile de la optiunea 3 - Work with members.

STRPDM - optiunea 3 sau WRKMBRPDM. Se precizeaza fisierul sursa si biblioteca. Se pot face selectii dupa nume sau tip. Daca se lasa *ALL in ambele campuri, se vor afisa toti membri fisierului sursa.

In ecranul Work with members using PDM distingem mai multe zone:

-In coltul din stanga sus exista:

-campul File - in care se poate introduce numele fisierului sursa

-campul Library - in care se poate introduce numele bibliotecii in care se afla fisierul sursa.

-In coltul din dreapta sus exista un camp care ne permite pozitionarea rapida in lista de membri. In acest camp se poate trece numele membrului sursa cautat sau o parte din acest nume.

Lista se va pozitiona pe primul membru al carui nume incepe cu sirul de caractere specificat. In campul de pozitionare se mai poate trece:

-*TOP - pozitionare la inceputul listei

-*BOT - pozitionare la sfarsitul listei

Urmatoarea zona din acest ecran este lista optiunilor. Pentru a vedea si optiunile aditionale se apasa F23.

Sub lista optiunilor se afla lista membrilor fisierului sursa.

In stanga listei membrilor se afla coloana Optiuni in care se pot trece optiunile din lista de optiuni precum si comenzi definite de utilizator. Dupa ce s-a trecut optiunea, se poate apasa ENTER sau F4=Prompt.

Se pot trece optiuni diferite in dreptul mai multor membri, in acelasi timp. De asemenea, aceeasi optiune se poate trece in dreptul mai multor membri. Daca avem o comanda in linia de comanda, optiunea nu se va executa.

-In partea de jos a ecranului se afla linia de comanda. Aici se pot introduce comenzile sistemului de operare.

-Sub linia de comanda se afla lista functiilor. Pentru a vedea functiile aditionale se apasa F24.

Optiunile din ecranul Work With Members Using PDM

-2=Edit - permite editarea unui membru utilizand utilitarul SEU

-3=Copy - copierea unuia sau mai multor membri in unul sau mai multi membri noi. Copierea se poate face in acelasi fisier sursa si biblioteca sau intr-un alt fisier sursa din aceeasi biblioteca sau dintr-o alta biblioteca.

-4=Delete - stergerea unuia sau mai multor membri din fisierul sursa.

-5=Display - afisarea unuia sau mai multor membri utilizand SEU

-6=Print - tiparirea unuia sau mai multor membri

-7=Rename - redenumirea unuia sau mai multor membri

-8=Display description - afisarea informatiilor despre unul sau mai multi membri

-9=Save - salvarea membrului pe discheta sau caseta

-13=Change text - pentru a schimba tipul si textul unuia sau mai multor membri (se poate schimba si direct daca nu este dezactivata optiunea in Change defaults)

-14=Compile - compilarea membrilor interactiv sau in mod batch in functie de setarile din ecranul Change defaults.

-15=Create module - crearea unui modul pentru o sursa ILE

-16=Run Procedure - pentru rularea unei proceduri de tip REXX sau BASP (BASIC).

-17=Change Using SDA - lanseaza utilitarul SDA care permite modificarea fisierelor display sau a meniurilor. Se poate folosi pentru membri de tip DSPF, MNU, MNUDDS sau MNUCMD.

-19=Change using RLU - lanseaza utilitarul RLU pentru crearea si modificarea fisierelor printer. Se poate folosi numai pentru membri de tip PRTF.

-25=Find string - permite cautarea unui sir de caractere in unul sau mai multi membri.

-54=Compare file members - permite compararea fisierelor de date PF-DTA sau a fisierelor sursa PF-SRC. Se poate folosi numai pentru aceste doua tipuri de fisiere.

-55=Merge file member - numai pentru fisiere sursa, PF-SRC.

-In coloana Type se afla tipul membrului. In functie de setarea din ecranul Change Defaults, se poate sau nu se poate modifica tipul membrului inscris in aceasta coloana.

-Textul - din coloana Text. De asemenea se poate sau nu se poate modifica in functie de aceasta setare.

Taste functionale in ecranul Work With Members Using PDM

F1=Help - pentru a vedea informatii despre acest ecran.

F3=Exit - pentru iesirea din acest ecran si revenirea in ecranul precedent

F4=Prompt - Ofera asistenta pentru optiunile din lista de optiuni sau pentru comenzile trecute in linia de comanda. Daca se apasa F4, atunci cand nu este trecut nimic in linia de comanda sau in coloana de optiuni, se afiseaza o lista de comenzi sau grupuri de comenzi.

F5=Refresh - Reconstruieste si reafiseaza lista.

F6=Create - Ne duce in utilitarul SEU unde putem crea un nou membru in fisierul sursa curent (specificat in campul File din coltul din stanga sus al ecranului).

F9=Retrieve - Se afiseaza ultima comanda tastata in linia de comanda.

F10=Command entry - Permite afisarea tuturor comenzilor care au fost rulate din linia de comanda, precum si lista erorilor care au survenit in timpul sesiunii de lucru.

F11=Display names and types - O alta vizualizare a listei membrilor, in format multicoloana.

F12=Cancel - Renuntare la orice optiune sau modificare din ecranul curent si revenirea la ecranul precedent.

F13=Repeat - Repeta o optiune de la linia curenta pana la sfarsitul listei.

F14=Display date - Afisarea datei ultimei modificari pentru fiecare membru din lista.

F15=Sort date - Sortarea listei membrilor dupa data ultimei modificari.

F16=User options - Afiseaza ecranul cu optiunile definite de utilizator. Numele fisierului care contine optiunile definite de utilizator este afisat in ecranul Change Defaults.

F17=Subset - Afisarea listei de membri dupa anumite criterii. Apasand F17 se pot specifica criteriile.

F18=Change Defaults - Schimbarea setarilor implicite.

F21=Print list - Permite tiparirea listei de membri. Daca lista este subsetata, se vor tipari doar membri selectati. Lista este trimisa in coada de tiparire care se poate afisa cu comanda WRKSPLF.

F23=More options - Alte optiuni - afisarea urmatorului set de optiuni disponibile in ecranul curent.

F24=More Keys - Alte taste functionale - afisarea urmatorului set de taste functionale disponibile in ecranul curent.

UTILITARUL SEU (Source Entry Utility)

Utilitarul SEU se foloseste pentru introducerea si editarea codurilor sursa. Utilitarul permite inserarea, mutarea, copierea, stergerea liniilor, operatii cu linii multiple, scanarea surselor, cautarea unui anumit sir intr-un cod sursa, inlocuirea unui sir cu un altul in codul sursa.

Pentru a porni utilitarul SEU avem doua cai:

a)-comanda STRSEU + F4 intr-o linie de comanda. Daca se lanseaza SEU cu aceasta comanda, va trebui sa precizam numele fisierului sursa si biblioteca in care se afla fisierul sursa.

-In campul Source member se trece numele membrului sursa, iar in campul Source Type se trece tipul sursei. Daca se apasa F1 in campul Source Type putem vedea o lista cu tipurile de surse disponibile.

-In campul Text description se poate trece un text, care ne va ajuta sa stim ce contine membrul respectiv.

b)-in PDM - optiunea 3 - Work with members using PDM , cu tasta F6 se lanseaza SEU. Daca pornim SEU din acest ecran, numele fisierului sursa si al bibliotecii se completeaza automat.

Ecranul utilitarului SEU are trei zone:

-zona comenzilor SEU

-zona de date

-zona cu lista tastelor functionale disponibile.

Zona comenzilor SEU este linia din partea superioara a ecranului. Principalele comenzi care se pot trece in linia de comanda SEU sunt:

-FIND sau F - pentru cautarea unui sir de caractere

-CHANGE sau C - pentru modificare

-SAVE - pentru salvarea membrului

-CANCEL sau CAN - renuntare

-TOP sau T - pentru pozitionarea la inceputul listei

-BOTTOM sau B - pentru pozitionarea la sfarsitul listei

-FILE - pentru a salva membrul in alt fisier.

Pentru a rula o comanda SEU se trece comanda in linia de comanda SEU, dupa care se apasa ENTER. Pentru a reveni la ultima comanda introdusa se apasa tasta F9=Retrieve.

Daca cursorul se afla in zona de date, prin apasarea tastei F10 putem reveni pe linia comenzilor SEU. SEU memoreaza peste 50 de comenzi.

Pentru a vedea HELP-ul pentru o comanda SEU, se trece comanda in linia de comanda dupa care se apasa ALT+F1.

Pentru a vedea lista comenzilor SEU disponibile ne pozitionam cu cursorul pe linia comenzilor SEU si apasam F1.

Nu se pot introduce comenzi sistem in linia comenzilor SEU. Daca dorim sa introducem o comanda sistem, apasam F21 iar in fereastra care apare se poate introduce comanda.

Comenzile FILE, SAVE si CHANGE se pot introduce doar intr-o sesiune de editare.

Zona tastelor functionale

In SEU se pot utiliza urmatoarele taste functionale:

-F1=Help - in functie de pozitia in care se afla cursorul, ofera informatii despre valorile care se pot introduce, despre comenzile, functiile sau optiunile care se pot utiliza.

-F3=Exit - parasirea utilitarului SEU

-F4=Prompt - ofera asistenta la introducerea valorilor in campuri. Daca ne aflam pe un numar de secventa, F4 duce la afisarea promptului.

-F5=Refresh - Reafiseaza membrul , se revine la situatia de dupa ultimul ENTER.

-F9=Retrieve - Se afiseaza ultima comanda tastata in linia comenzilor SEU.

-F10=Cursor - Daca ne aflam in aria de date, cu F10 se face pozitionarea pe linia de comanda. Daca ne aflam pe linia de comanda, cu F10 ne pozitionam in zona de date.

-F11=Toggle - Permite deplasarea ecranului la stanga sau la dreapta.

-F13=Change session defaults - Modificarea valorilor implicite ale sesiunii de lucru

-F14=Fiind/Change options - permite cautarea si modificarea unui sir de caractere in membrul sursa.

-F15=Browse/Copy options - afiseaza un alt membru din care se pot copia linii in membrul editat.

-F16=Repeat fiind - permite cautarea sirului de caractere introdus in linia de comanda SEU. Prin apasarea repetata a lui F16, se repeta cautarea si cursorul se pozitioneaza pe urmatorul sir gasit.

-F17=Repeat change - repeta modificarea unui sir de caractere

-F19=Left - deplasarea ecranului la stanga

-F20=Right - deplasarea ecranului la dreapta

-F21=System command - afisarea unei ferestre in care se pot introduce comenzi sistem

-F23=Select prompt - permite selectarea unui tip de format (prompt).

-F24=More Keys - Afisarea urmatorului set de taste functionale disponibile in ecranul curent.

Zona de date

Contine specificatiile, codul sursa. Pentru a introduce prima linie, pe prima pozitie din stanga sus se scrie IP?. Va aparea o fereastra cu toate tipurile disponibile de prompt. Daca se trece IPA* se va insera o linie de comentariu. Daca se trece doar IP, se va insera promptul implicit pentru formatul ales.

Dupa ce s-a introdus prima linie, in stanga ecranului apare numarul de secventa. Pe acest numar se pot introduce diverse comenzi.

Cele mai utilizate comenzi sunt:

A=After - se muta sau se copiaza randuri dupa acest rand

An= - se muta sau se copiaza un rand dupa acest rand si se repeta randul de n ori.

B=Before - se muta sau se copiaza randuri inainte de acest rand.

Bn - se muta sau se copiaza randuri inainte de acest rand si se repeta randul de n ori.

C=Copy a line - se copiaza linia la destinatia specificata.

Cn=Copy n line - se copiaza linia curenta plus urmatoarele n-1 linii la destinatia specificata.

CC=Block Copy - se copiaza un grup de linii cuprinse intre doua comenzi CC.

CR - se copiaza linia la destinatia specificata si se pastreaza comanda pe display pentru utilizari ulterioare.

CRn - se copiaza n linii la destinatia specificata si se pastreaza comanda pe display.

CCR - se copiaza grupul de linii cuprins intre doua comenzi CCR si se pastreaza comanda pe display.

D=Delete - se sterge linia curenta.

Dn - se sterge linia curenta si urmatoarele n-1 linii.

DD - se sterg toate liniile cuprinse intre doua comenzi DD.

F - se afiseaza o linie format

Fxx - se afiseaza formatul xx.

F? - se afiseaza ecranul de alegere a formatelor.

I - se insereaza o linie goala dupa linia curenta.

In - se insereaza n linii goale dupa linia curenta.

IP - se insereaza o linie goala si se afiseaza linia in prompt. Formatul liniei precedente determina tipul promptului care va fi afisat.

IPxx - se insereaza o linie goala si se afiseaza linia intr-un prompt de tip xx.

IP? - se afiseaza ecranul de selectie a tipului de prompt. Dupa ce s-a ales tipul de prompt se va insera o linie goala intr-un prompt de tipul ales.

L - se muta linia la stanga cu un caracter.

Ln - se deplaseaza linia la stanga cu n caractere.

LL - se deplaseaza toate liniile cuprinse intre doua comenzi LL cu un caracter la stanga.

LLn - se deplaseaza toate liniile cuprinse intre doua comenzi LLn cu n caractere la stanga.

LP - se tipareste linia curenta.

LPn - se tipareste linia curenta plus urmatoarele n-1 linii.

LLP - se tiparesc toate liniile cuprinse intre doua comenzi LLP.

M - se muta linia la destinatia specificata.

Mn - se muta linia curenta si urmatoarele n-1 linii la destinatia specificata.

MM - se muta toate liniile cuprinse intre doua comenzi MM la destinatia specificata.

P - se afiseaza linia curenta in prompt.

Pxx - se afiseaza linia curenta intr-un prompt xx.

P? - se afiseaza ecranul de selectare a promptului. Dupa ce s-a specificat tipul de prompt, se va afisa linia curenta in tipul de prompt ales.

R - se deplaseaza linia curenta cu un caracter la dreapta.

Rn - se deplaseaza linia curenta cu n caractere la dreapta.

RR - se deplaseaza toate liniile cuprinse intre doua comenzi RR cu un caracter la dreapta.

RRn - se deplaseaza toate liniile cuprinse intre doua comenzi RRn cu n caractere la dreapta.

RP - se repeta linia o data inainte de linia urmatoare.

RPn - se repeta linia curenta de n ori inainte de linia urmatoare.

S - se defineste o linie ca si o linie schelet. Dupa ce s-a definit o linie schelet, putem insera o linie schelet cu comanda IS, sau n linii schelet cu comanda ISn.

W - se afiseaza membrul incepand din coloana 1.

X - se exclude linia curenta din display. Pentru reafisare se apasa F5.

Xn - se exclud n linii din display.

XX - se exclud toate liniile cuprinse intre doua comenzi XX.

- se deruleaza membrul inainte cu o linie.

- se deruleaza cu o linie inapoi.

"+"n - se deruleaza membrul cu n linii inainte.

"-"n - se deruleaza membrul cu n linii inapoi.

n = Pozitionare absoluta - pozitionare pe linia care are numarul de secventa egal cu n.

SEU - F13 Change session defaults - Modificarea valorilor implicite ale sesiunii cu utilitarul SEU. Setarile mai importante sunt:

-Modul de derulare a ecranului:

-H - Half

-F - Full

-C - Cursor

-D - Data

-Introducerea surselor folosind doar majuscule (Uppercase input only) Y sau N

-Modul de afisare a ecranului (Full screen mode) Y sau N

-Dimensiunea ecranului 1=27x132; 2=24x80

-Tipul sursei

-Momentul in care se face verificarea sintaxei (implicit la adaugare sau modificare)

-Daca in campul Default to uppercase input for this source type se trece Y, in toate sursele de tipul specificat se va permite introducerea numai cu majuscule.

SEU - F14 - Optiuni de cautare/modificare. Permite cautarea si modificarea unui sir de caractere in sursa.

-In campul Find se introduce sirul cautat.

-In campul Change se introduce noua valoare.

Se pot specifica coloanele intre care sa se faca cautarea.

-Se poate preciza numarul de modificari. Daca in campul Occurences to process se trece 1 , se va modifica doar urmatoarea valoare gasita. Pentru 2 se vor modifica toate valorile gasite, iar pentru 3 se modifica doar valoarea precedenta.

-Se poate face cautarea in toata sursa, sau numai in randurile excluse, sau numai in randurile neexcluse (Records to search):

1 - All

2 - Excluded

3 - Non excluded

-Kind of match:

1 - Same case - se tine cont de majuscule

2 - Ignor case - nu se tine cont de majuscule

-Se pot face cautari dupa data

-Se pot preciza conditii de cautare (mai mic, egal, mai mare)

SEU - F15 Browse / Copy Options

Permite afisarea unui alt membru din care se pot copia linii in membrul editat.

Daca in campul Selection se trece 1 se afiseaza un membru; pentru 2 se afiseaza un fisier spool ; pentru 3 se afiseaza o coada de tiparire.

Daca dorim ca toate liniile (inregistrarile) sa fie copiate in membrul editat, se trece Y = Yes la Copy All Records.

Se precizeaza membrul sau fisierul spool sau coada de tiparire pe care dorim sa o afisam.

Membrul selectat se va afisa intr-o fereastra de afisare (Browse). In aceasta fereastra nu putem face nici o modificare. Putem copia linii din fereastra Browse in fereastra Edit folosind comenzile C sau CC.

Daca dorim sa mutam linia de separare a celor 2 ferestre, ne deplasam cu cursorul in pozitia dorita si apasam F6.

Pentru inchiderea ferestrei Browse se apasa F12 si se va afisa fereastra de editare pe tot ecranul

AFISAREA UNUI FISIER SPOOL

Se da comanda WRKSPLF pe o linie de comanda sau se trece SP in coloana de optiuni din PDM.

In dreptul fisierului pe care dorim sa-l afisam se trece optiunea 5.

In campul Control se pot trece urmatoarele valori:

o               B sau *BOT - se afiseaza sfarsitul listei

o               T sau *TOP - se afiseaza inceputul listei

o               P+n - derulare inainte cu n pagini

o               P-n - derulare inapoi cu n pagini

o               Pn - salt la pagina n

o               n - salt la linia n

o               +n - derulare inainte cu n linii

o               -n - derulare inapoi cu n linii

o               W+n - deplasare la dreapta cu n coloane

o               W-n - deplasare la stanga cu n coloane

o               Wn - deplasare la coloana n

Pentru a face cautari in lista, in campul Find se trece un sir dupa care se apasa F16.

Intr-o lista de compilare, un asterisc in partea stanga marcheaza de obicei o eroare. Cu F3 iesim din afisarea listei.

Cu optiunea 4 se poate sterge fisierul din Spool.

Daca in optiunea SEU- F15 - Browse / Copy Options se alege 2, se va afisa un fisier spool. Daca in linia de comenzi SEU din fereastra Browse se trece F *ERR si se apasa Enter, se va afisa prima eroare din lista de compilare. Cu F16 se cauta urmatoarea eroare.

LUCRUL CU OPTIUNI DEFINITE DE UTILIZATOR

Pentru a vedea lista principalelor comenzi disponibile, se apasa F16 in PDM. Cele mai folosite comenzi sunt:

C (Call) - apeleaza programul respectiv (doar pentru programe)

CC (CHGCURLIB) - seteaza biblioteca in care ne aflam ca si biblioteca curenta

CM (Create Menu) - creare meniu (STRSDA - optiunea 2)

CS (Create Screen) - creare ecran (STRSDA - optiunea 3)

DM (DSPMSG) - afisare mesaje

EA (EDTOBJAUT) - editare autoritati obiect (numai in Work With Objects)

GO - apelare meniu

JL (DSPJOBLOG) - afisare Job Log

SP (WRKSPLF) - afisare ecran Spool

Fisierul implicit de optiuni este QAUOOPT din biblioteca QGPL. Putem utiliza propriul nostru fisier de optiuni. Pentru aceasta, in PDM se apasa F18 (Change Defaults) iar in ecranul care apare se trece numele fisierului propriu si biblioteca in care se gaseste acest fisier.

COMANDA FNDSTRPDM

Permite cautarea unui sir de caractere in membrii sursa.

Pentru lansarea comenzii se trece FNDSTRPDM + F4 in linia de comanda, sau se trece optiunea 25 in PDM (Work With Members), dupa care se apasa F13 pentru repetarea optiuniii pentru toti membrii.

Pentru a cauta sirul in toti membrii unui fisier sursa, la parametrul MBR se trece *ALL.

Daca dorim tiparirea membrilor care contin sirul cautat, in campul Operation To Perform se trece *NONE, iar la Print List se trece *YES.

In campul Print Records:

*NONE - vom avea doar lista membrilor

*ALL - se vor tipari toate randurile din membrul sursa care contin sirul respectiv

Daca dorim doar afisarea membrilor care contin sirul in campul Operation To Perform se trece *DSP, iar pentru editare *EDIT.

UTILITARUL SDA (SCREEN DESIGN AID)

Utilitarul SDA este un generator de ecrane. Cu ajutorul lui se pot crea si descrie ecrane.

Fisierele DISPLAY sunt fisiere care asigura interfata intre utilizator si sistemul AS400. Ele nu contin date. Pentru descrierea fisierelor DISPLAY se poate utiliza si utilitarul SEU cu formatul DDS, dar este mult mai usor cu SDA. Exista mai multe tipuri de fisiere DISPLAY dintre care amintim:

Meniuri

Ecrane simple

Ecrane cu subfisier

Pentru a porni utilitarul SDA se introduce comanda STRSDA intr-o linie de comanda. Ajungem in meniul utilitarului care are 3 optiuni:

Descriere ecrane

Descriere meniuri

Testare fisiere display

v    Crearea unui meniu

Optiunea 2 din SDA - creare meniuri.

In ecranul Design Menus se introduce fisierul sursa, biblioteca si numele meniului pe care dorim sa-l creem. Vom crea meniul MYMENU in QDDSSRC. Dupa ce apasam Enter, ajungem in ecranul Specify Meniu Functions unde trecem Y(Yes) in campul Work With Menu Image And Comands. Ajungem in ecranul in care vom defini optiunile meniului.

Liniile de la 1 la 20 formeaza corpul meniului. Cand se creaza un meniu sistemul va folosi automat linia 1 pentru titlu. Se pot utiliza toate liniile de la 1 la 18. Pentru a putea utiliza si liniile 19 si 20, pe care se afla descrierea tastelor functionale, se va trece *NO la Display Function Keys in ecranul Create Meniu. Prima pozitie din ecran (linia 1, coloana 1) este rezervata sistemului, nu putem trece nimic in aceasta pozitie. In meniuri se pot trece doar constante (texte).

Pentru a introduce aceste constante, se trece textul intre apostrofuri si se apasa tasta Enter. Daca nu se folosesc apostrofuri, un spatiu marcheaza sfarsitul unui camp.

Observatie : Nu se va folosi tasta Delete in ecran. Daca dorim sa stergem un caracter, vom folosi tasta Space. Daca dorim sa stergem un camp se trece litera D in fata campului si se apasa Enter.

In ecran putem folosi urmatoarele constante:

*DATE - pentru afisarea datei sistemului

*TIME - pentru afisarea orei sistemului

*USER - pentru afisarea utilizatorului

*SYSNAME - pentru afisarea numelui sistemului

Exemplu:

*SYSNAME *DATE *TIME

*USER

+M(nn) - pentru a crea un camp constant de mesaje de lungime n. Daca se trece aceasta comanda, ni se va solicita identificatorul mesajului (codul mesajului) precum si numele fisierului de mesaje.

Pozitia din fata unui camp se numeste pozitie de atribute. Pentru a vedea proprietatile (atributele) unui camp se trece * in pozitia de atribute a campului. Pentru a trece la pozitia de atribute a urmatorului camp se apasa F18. Pentru a trece la pozitia de atribute a campului precedent, se apsa F19.

Se pot trece urmatoarele comenzi in pozitia de atribute:

Adaugare Retragere

H (High intensity) -H

R (Reverse image) -R

S (Column separator) -S

B (Blink) -B

N (Nondisplay) -N

U (Underscore) -U

-A (Remove all atributes)

Culori

Adaugare Retragere

CB (Blue) - CB

CG (Green)    - CG

CP (Pink) - CP

CR (Red) - CR

CT (Turquoise) - CT

CW (White)    - CW

- CA (Remove all colors)

Aceste comenzi se pot trece atat cu majuscule cat si cu minuscule, dar in cazul in care litera unei comenzi de retragere este identica cu prima litera a campului, comanda se va trece in mod opus (daca prima litera e campului este cu majuscule, comanda se va trece cu litera mica).

Alte comenzi:

AC - centrarea campului - mutarea campului in centrul randului pe care se afla (pe care incepe).

Mutarea unui camp - se face cu "-" in pozitia de atribute a campului si "=" in pozitia in care dorim sa mutam campul.

Copierea unui camp - se face cu "-" in pozitia de atribute a campului si "= =" in pozitia in care dorim sa copiem campul.

Mutare bloc de campuri

"-" in coltul din stanga sus al blocului de campuri;

"-" in coltul din dreapta jos al blocului de campuri;

"=" in pozitia dorita.

Observatie: nu se pot suprapune campuri!! Daca un camp se suprapune peste alt camp, campul nu va fi mutat.

Copiere bloc de campuri

in coltul din stanga sus al blocului de campuri;

"-" in coltul din dreapta jos al blocului de campuri;

"= =" in pozitia dorita.

Observatie: nu putem copia campuri peste un alt camp!! Daca campul se suprapune peste alt camp, campul nu va fi copiat.

Deplasarea unui camp la dreapta

Se trece >>> pe pozitia imediat urmatoare campului. Campul se va deplasa la dreapta pana in locul indicat de ultimul semn.

Deplasarea unui camp la stanga

Se trece <<< in fata campului. Campul se va deplasa la stanga pana in pozitia indicata de ultimul semn.

Introducerea comenzilor pentru optiunile meniului

Pentru introducerea comenzilor putem folosi:

F10 - trecem in ecranul de comenzi, dar nu vom mai vedea textul optiunilor din meniu;

F13 - ramanem in ecranul de lucru. Pentru trecerea la urmatoarea optiune se apasa Page Up sau Page Down.

Se poate utiliza tasta F4 pentru precizarea parametrilor comenzilor.

Exemplu

Meniu utilitare

Selectati una din urmatoarele optiuni:

1) Afisare lista de biblioteci -DSPLIBL

2) Schimbare biblioteca curenta -CHGCURLIB

3) Pornire PDM -STRPDM

4) Lucrul cu membri in PDM -WRKMBRPDM

5) Pornire SQL -STRSQL

6) Afisare Spool -WRKSPLF

90) Iesire -SIGNOFF

Dupa ce s-au trecut comenzile pentru toate optiunile, se apasa F3:

Y - pentru a salva membrul sursa

Y - pentru a crea obiectul

Y - pentru a rescrie membrul (replace)

Y - pentru a rescrie obiectul (replace)

Dupa Enter ecranul se salveaza si se compileaza automat. Se va crea si obiectul.

Observatii:

1)Observam ca s-au creat doi membri:

MYMENU - contine imaginea meniului

MYMENUQQ - contine comenzile

Atentie!! Cand denumim un meniu, trebuie sa tinem cont de faptul ca sistemul creeaza automat inca un membru care va contine in denumire, pe ultimele doua pozitii, literele QQ. Astfel lungimea maxima pe care o putem specifica pentru un meniu este de 8 caractere.

2)Se creeaza trei obiecte:

MYMENU - type *MENU - atribut DSPF

MYMENU - type *FILE - atribut DSPF

MYMENU - type *MSGF

Pentru a executa meniul se da comanda: GO MYMENU .

v    Crearea unui ecran cu SDA

Pentru a crea un ecran se alege optiunea 1 in SDA. In ecranul care apare se va trece numele fisierului sursa (QDDSSRC), numele bibliotecii si numele ecranului (ECRFACT) - ecran de facturi.

Se ajunge in ecranul Work with diaplay Records - ecranul care contine formatele de inregistrare ale ecranului. Un fisier display poate avea mai multe formate de inregistrare.

Pentru a defini un format de inregistrare se foloseste optiunea 1=Add si se precizeaza numele formatului de inregistrare (RECRFACT). Putem crea urmatoarele tipuri de formate de inregistrare intr-un fisier display:

-Record - ecran simplu

-SFL - ecran cu subfisier

-WINDOW - fereastra

-MNUBAR - bara de meniuri

-PULDWN - optiuni in bara de meniuri

-WDWSFL - fereastra cu subfisier

Dupa ce s-a ales numele si tipul formatului de inregistrare se apasa Enter si ajungem in ecranul de lucru in care se poate desena ecranul. In acest ecran putem introduce constante, campuri, putem defini taste functionale.

Tastele functionale care pot fi folosite:

F3 - Iesire din ecran

F4 - Afisare campuri in ecranul Work with fields

F6 - Conditii - Afisarea ecranului de introducere conditii

F9 - Selectare inregistrari aditionale

F10 - Selectare fisier de date

F11 Afisare lista de campuri - Comutare intre doua liste de campuri:

-lista tuturor campurilor

-lista campurilor neselectate

F12 - Pentru salvare si iesire. Se revine in ecranul cu formatele de inregistrare.

F13 - Afisarea ecranului cu setarile implicite

F14 - Afisarea sau ascunderea Ruletei orizontale si verticale

F15 - Disponibil doar in ecranele cu subfisier. Se va afisa ecranul de definire a numarului total de linii si a numarului de linii pe pagina.

F17 - Tiparirea continutului ecranului Design Image.

F18 - Pozitionarea cursorului in pozitia de atribute a urmatorului camp.

F19 - Pozitionarea cursorului in pozitia de atribute a campului precedent.

F20 - Constantele vor aparea in imagine inversa. Utilizata pentru a vedea intreaga lungime a campurilor constante.

F21 - Pentru a vedea inregistrarile aditionale asociate inregistrarii primare.

F22 - Se afiseaza o fereastra in care se pot introduce comenzi sistem.

v    Lucrul cu campuri in fisierele display

a).In functie de modul de utilizare, campurile din fisierele display pot fi de 3 tipuri:

-I - input - campuri de intrare - folosite pentru introducerea datelor

-O - output - campuri de iesire - folosite numai pentru afisarea datelor

-B - both - intrare-iesire - pot fi folosite atat pentru introducerea datelor cat si pentru afisarea lor.

-Pentru a adauga un camp alfanumeric se foloseste semnul + urmat de I, O sau B in functie de modul de utilizare a campului. Lungimea campului se specifica prin numarul de caractere care urmeaza dupa semnul + sau prin cifra din paranteza care urmeaza dupa literele I, O sau B

Exemplu: Pentru a adauga un camp alfanumeric de 3 caractere, utilizat pentru intrare-iesire, se va scrie:

+BBB sau +B(3)

Pentru un camp de iesire vom avea +OOO sau +O(3)

-Pentru a adauga un camp numeric se foloseste semnul + urmat de una din urmatoarele cifre:

3 - input - camp de intrare

6 - output - iesire - doar afisare

9 - both - intrare-iesire

Exemple

-camp numeric output de lungime 4 cu 2 zecimale

+66.66 sau +6(4,2)

-camp numeric input de lungime 3 fara zecimale:

+333 sau +3(3)

b).Campuri constante in fisierele DISPLAY

-Pentru a introduce un camp constant, se trece sirul de caractere (textul) intre apostrofuri.

-Daca nu folosim apostrofuri, un spatiu va marca sfarsitul unei constante simple.

-Pentru a reuni mai multe constante simple intr-una singura, incadram toate constantele intr-o pereche de apostrofuri.

-Daca intre doua constante nu exista nici un spatiu, la definirea constantelor vom defini ghilimelele pentru a marca sfarsitul unei constante si inceputul celei de a doua , de exemplu: 'aaa"bb'

-Se pot folosi constantele sistem: *DATE, *TIME, *USER, *SYSNAME

-+M(nn) pentru a defini un camp de mesaje de lungime nn.

Mutarea, copierea campurilor din fisierele DISPLAY se face la fel ca si la meniuri. Comenzile pentru definirea atributelor si a culorilor sunt aceleasi ca si cele folosite pentru meniuri. Pentru a afisa atributele unui camp, se trece * in pozitia de atribute a campului. Daca se trece ? in pozitia de atribute, se afiseaza numele si lungimea campului. Avem posibilitatea sa modificam aceste date.

Adaugarea campurilor dintr-un fisier de date

Daca dorim sa introducem in display campuri dintr-un fisier de date, se apasa F10 si se afiseaza ecranul Select Database Files.

Pentru a afisa campurile unui fisier se alege optiunea 1, dupa care se introduce numele fisierului de date, biblioteca in care se gaseste fisierul si numele formatului de inregistrare. In functie de modul de utilizare a campurilor (I, O sau B) in dreptul campurilor fisierului de date trecem optiunea 2 (pentru input), 3 (pentru output) sau 4 (pentru both).

Campurile alese din fisierul de date vor aparea in partea de jos a ecranului.

Pentru a adauga campurile in ecran, vom trece in pozitia in care dorim sa introducem campul, caracterul & (ampersant) urmat de numarul campului:

&n - adaugare camp fara antet coloana

&nL - adaugare camp si antet coloana la stanga

&nR - adaugare camp si antet coloana la dreapta

&nC - adaugare camp si antet coloana deasupra campului

&nP - adaugare numai antet coloana.

Selectarea atributelor unui camp

Pentru a preciza atributele unui camp, se trece * in pozitia de atribute a campului.

In ecranul Select Field Keywords se trece Y in dreptul atributului pe care dorim sa-l definim:

* Display attributes Y

Exemplu:

Nondisplay - Precizam un indicator; de exemplu 50. Daca acest indicator este setat ON, campul nu se va afisa.

PC - Position Cursor cursorul se va pozitiona pe acest camp.

* Culori

* Keying options

Permite un control al introducerii sau modificarii datelor:

ME - Mandatory entry - obliga utilizatorul sa introduca cel putin un caracter in camp

MF - Mandatory fill - Umplerea campului este obligatorie

FE - Field exit required - este obligatorie iesirea cu Field exit.

Keybord shift attribute - permite controlul caracterelor introduse de la tastatura:

S - numar cu semn la dreapta

N - orice numar

Y - doar numere

I - nu permite introducerea

D - cifre de la 0 la 9.

Pentru campuri de tip caracter se poate utiliza LC - care permite utilizarea caracterelor mici (implicit se permite introducerea numai cu majuscule)

* Validity Check

Permite o validare primara a datelor introduse in campul respectiv. Se poate preciza un interval de valori (RANGE), o lista de valori (VALUES) sau se poate face o comparare. Se poate preciza mesajul care se va afisa daca valoarea introdusa in camp nu este valida.

* Editing Keywords

Permite stabilirea formatului datelor introduse. Se poate preciza un cod de editare sau un cuvant de editare. Pentru a vedea codurile de editare valide se apasa F1 in campul Edit code.

* Database reference

In cazul in care se utilizeaza campuri referite

* Error messages

In ecranul Define Error Messages se pot defini mesajele de eroare care se vor afisa in linia de mesaje a ecranului. Se poate trece textul mesajului in coloana ERRMSG=Message Text, sau se poate preciza un cod de mesaj, in cazul in care se utilizeaza un fisier de mesaje. Afisarea mesajului este conditionata de un indicator. Daca valoarea introdusa in camp nu este valida, indicatorul va fi setat ON si se va afisa mesajul de eroare. Indicatorul este un numar de la 01 la 99 si se introduce in coloana Indicators.

Dupa ce s-au introdus toate campurile in ecran, se iese cu F12. In ecranul Exit SDA Work Screen se alege optiunea 1 pentru a salva ecranul.

Ajungem din nou in ecranul cu formatele de inregistrare ale fisierului display. Cu optiunea 12 se poate reveni in ecranul de desenare a formatului de inregistrare. Cu 8 se afiseaza specificatiile la nivel de format de inregistrare.

Se trec tastele functionale - Indicator Keywords.

Cu F14 se pot preciza specificatiile la nivel de fisier, de exemplu dimensiunea ecranului.

Cu F3 se face iesirea, se da Y la Save DDS Source si Y la Create Display file.

Se salveaza fisierul display si se compileaza automat.

Se creeaza un obiect cu type: *FILE, atribut: DSPF.

Exemplu: ECRFACT

*SYSNAME    *DATE *TIME

*USER

DATE GENERALE FACTURI

(Rosu - RI)

Numar factura...: NRFACT (B)

Cod fiscal.......: CODBEN (B)

Denumire beneficiar..: DENBEN O(50) (Alb)

Data facturii...: DATAFACT (B)

Valoare factura....: VALFACT (O) (Alb)

F3 - Iesire (blue) F06 - Confirmare

v    Testarea unui ecran cu SDA

Se face cu optiunea 3.

Pentru campurile OUTPUT si BOTH se introduc valori la test. Se apasa Enter si se afiseaza ecranul cu valorile introduse. Urmarim si F03.

Exercitii

Sa se creeze fisierul display FACTDSP cu urmatoarele formate de inregistrare:

1). R ANTET

2).R FUNCTII

3).R GEN - Date generale

4).R POZ - Pozitii factura

5).R MESAJE - Fereastra de mesaje

UTILITARUL RLU (Report Layout Utility)

Se foloseste pentru crearea fisierelor printer.

Pentru a porni utilitarul se trece comanda STRRLU intr-o linie de comanda si se apasa tasta F4. In ecranul care apare se completeaza numele fisierului sursa, biblioteca in care se afla fisierul sursa si numele fisierului printer. Se precizeaza de asemenea latimea paginii: Page width.XSAME (132).

Dupa Enter se afiseaza ecranul Design Report.

v    Definirea unui format de inregistrare intr-un fisier printer

Un fisier printer poate avea mai multe formate de inregistrare. Pentru a defini o linie ca si format de inregistrare se parcurg urmatorii pasi:

-se insereaza o linie cu I in stanga ecranului.

Apar puncte .....

-peste aceste puncte se trece comanda DR (Define record)

Sistemul creeaza formatul de inregistrare RCD001.

Pentru lucrul cu un format de inregistrare se apasa tasta F18. Dupa ce s-a apasat F18 putem defini proprietatile formatului de inregistrare. Exemplu: ingrosarea liniei, numarul de spatii inainte si dupa linii, saltul la pagina noua inainte sau dupa linia respectiva.

-pentru redenumirea formatului de inregistrare se apasa F10 si se trece noua denumire.

-daca dorim ca inregistrarea sa continue pe mai multe linii, in stanga ecranului se trece I (insert) si va aparea 002. Aici putem scrie:

CLC (convert line to continue) - linie de continuare

CLF (convert line to field) - convertire linie in camp

CLR (convert line to record) - convertire linie in inregistrare

Pe o linie record putem folosi comenzile SEU: M, MM, C, CC, D ,DD , A, B, Ln, LLn, Rn, RRn, I, In, IP, RP, NP (new page) - page break.

v    Definirea campurilor intr-un fisier printer

-Pentru a defini campuri constante: ne pozitionam cu cursorul pe primul caracter al campului, dupa care apasam F11, F11+Enter. Daca ne pozitionam cu cursorul pe un spatiu, in fata unui text, se creeaza un camp constant cu lungimea 1. Daca ne pozitionam cu cursorul pe primul caracter al unui text, se defineste ca si camp constant textul incepand de la primul caracter pana la ultimul caracter care se afla inaintea a doua spatii consecutive. Daca dorim sa definim un text care contine doua sau mai multe spatii consecutive ca si o singura constanta, pe linia formatului de inregistrare, in stanga ecranului, trecem comanda DC (define constant).

-Definirea campurilor variabile (care au un nume):

Se trece X pentru camp de tip caracter sau 9 pentru camp numeric.

Apoi se apasa F11, se da un nume campului, se precizeaza tipul si lungimea campului.

Operatii cu campuri

-F13 - marcare camp

-F15 - mutare camp marcat

-F14 copiere camp marcat

-F16 - stergere camp marcat

-F23 - specificatii camp

-Deplasarea campurilor se poate face si cu Ln sau Rn pe o linie Record.

-Pentru a vedea campurile unui format de inregistrare, ne deplasam pe Record, in stanga ecranului, si apasam F4.

-Pentru a centra un camp, se trece CF pe o linie Record in stanga ecranului

-Pe o linie de campuri (FLD) se pot trece urmatoarele functii:

*DATE - data sistemului

*TIME - ora sistemului

*PAGNBR - numarul paginii.

v    Adaugarea campurilor din fisierele de date

Pentru a alege campurile dintr-un fisier de date, pe o linie Record se trece comanda VF (view field) dupa care se apasa F10. Se precizeaza fisierul si biblioteca, dupa care putem alege campurile pe care le dorim incluse in raport.

Dupa ce am ales campurile din fisier, lista campurilor alese va aparea in partea de jos a ecranului. Dupa linia Record (RCD002) se apasa F11 de doua ori si va aparea o linie de campuri (practic, am creat o constanta, dar pentru ca n-am trecut nici un caracter, apare doar linia de campuri). Ne deplasam pe linia de campuri, scriem numarul unui camp si apasam Enter.

Observatie: Daca dupa selectarea campurilor din fisierul de date nu vedem lista campurilor in partea de jos a ecranului se apasa F13- Change Session Defaults - si trecem Y in campul Show all field lines.

Pe o linie de campuri se disting urmatoarele caractere:

* - indica un camp de lungime 1

< (mai mic) - indica inceputul campului

> (mai mare) - indica sfarsitul campului

. (punct) - indica pozitiile campului in care se pot introduce valori.

Pe o linie de campuri putem face urmatoarele modificari:

- modificarea lungimii campului:

- pentru scurtarea campului stergem cu tasta Delete unul sau mai multe puncte cuprinse intre semnele < si >.

- pentru lungirea campului se apasa tasta Insert si se insereaza puncte intre semnele < si >.

- pentru a deplasa campurile la dreapta, se insereaza spatii in fata campului, pe linia de campuri.

- pentru a deplasa campurile la stanga, stergem cateva spatii din fata campului.

LIMBAJUL STRUCTURAT DE INTEROGARE SQL

(Structured Query Language)

SQL este un limbaj standardizat pentru definirea si manipularea datelor intr-o baza de date relationala. In modelul relational, o baza de date este perceputa ca un set de tabele. In SQL fisierele de date sunt privite ca si tabele, fisierele logice sunt indecsi, inregistrarile sunt linii, iar campurile sunt coloane.

SQL contine o serie de comenzi cu ajutorul carora se pot realiza operatii de baza asupra fisierelor bazei de date, cum ar fi:

- crearea de tabele, indecsi, colectii, vederi

- interogarea bazei de date

- intretinerea bazei de date

- crearea de rapoarte.

Comenzile limbajului SQL pot fi utilizate interactiv sau pot fi incluse intr-un limbaj de programare de nivel inalt (RPG, COBOL).

SQL INTERACTIV

Pentru a porni o sesiune SQL interactiv se introduce comanda STRSQL intr-o linie de comanda si se apasa Enter. Daca dupa STRSQL se apasa F4, ajungem intr-un ecran in care se pot seta mai multi parametri ai sesiunii SQL.

Cei mai importanti parametri sunt:

- Conventia de denumire (Naming convention).

Optiunea implicita este *SYS, adica sistemul de denumire utilizat de sistem: biblioteca/nume fisier. Daca utilizam aceasta conventie de denumire si biblioteca se afla in lista de biblioteci, nu mai este necesara precizarea bibliotecii. Daca nu se precizeaza biblioteca, iar fisierul se gaseste in mai multe biblioteci, se va prelucra fisierul aflat in prima biblioteca din lista de biblioteci.

- Library option - prin acest parametru se specifica lista de biblioteci in care se va cauta fisierul. Optiuni posibile:

*LIBL - Se face cautarea in toate bibliotecile din lista de biblioteci

*CURLIB - cautarea se face numai in biblioteca curenta

*USRLIBL - cautarea se face numai in bibliotecile utilizatorului

*ALL - cautarea se face in toate bibliotecile sistemului

*ALLUSR - cautarea se face in toate bibliotecile utilizatorului

- Formatul datei

- Formatul timpului (orei)

- Virgula (punctul) zecimala.

Daca dupa comanda STRSQL se apasa Enter , se va afisa ecranul in care se pot introduce comenzi (fraze) SQL.

Se poate introduce o singura comanda care se va executa dupa ce se apasa Enter. Daca dorim sa executam inca o data ultima comanda introdusa, se apasa F9. Pentru a executa o comanda mai veche din lista de comenzi, ne pozitionam cu cursorul pe comanda dorita si apoi apasam F9, apoi Enter.

Daca se apasa F4 vedem lista comenzilor SQL disponibile. Pentru a alege o comanda se introduce numarul corespunzator comenzii in campul de selectie.

Cu F15 se poate diviza o linie incepand din pozitia in care se afla cursorul.

Pentru iesirea din SQL se apasa F3. Optiunea implicita este 1 - se salveaza sesiunea de lucru. Cu optiunea 4 se poate salva sesiunea intr-un fisier sursa. Dupa editarea membrului sursa se poate rula o fraza SQL cu comanda RUNSQLSTM.

CELE MAI IMPORTANTE COMENZI SQL

v    Comenzi de creare

a) CREATE COLLECTION - se creeaza o colectie SQL (echivalentul unei biblioteci)

b) CREATE TABLE - se creeaza o tabela (un fisier de date - fisier fizic)

- O tabela este compusa din coloane (campuri) si linii (inregistrari).

- Numele tabelei trebuie sa respecte conventiile de denumire din AS400 si trebuie sa fie unic in cadrul unei biblioteci.

- O tabela poate contine pana la 8000 de coloane.

- Toate valorile dintr-o coloana sunt de acelasi tip.

- Numele unei coloane nu poate incepe cu SQ, RDI, DSN si nu poate fi un cuvant rezervat SQL.

- Tipuri de date:

- NUMERIC - pentru numeric cu zecimale. Se precizeaza lungimea campului (Length) si numarul de zecimale (Scale). Daca nu se precizeaza numarul de zecimale, se va lua valoarea implicita 0. Daca nu se precizeaza nici lungimea, nici zecimalele, valorile implicite sunt 5 pentru lungime si 0 pentru zecimale.

- CHAR - tip caracter. Se precizeaza lungimea in Length, dar nu putem preciza Scale.

- DATE - tip data calendaristica sub forma an, luna, zi. Nu se pot specifica Length si Scale. Anul este cuprins intre 1 si 9999, luna - intre 1 si 12, iar ziua intre 1 si 28, 29, 30, 31 in functie de luna.

- TIME - tip timp. O valoare care are trei parti (ora, minute, secunde).

-Ora - valori de la 0 la 24 - prima parte

-minute - valori de la 0 la 59 - a doua parte

-secunde - valori de la 0 la 59 - a treia parte

Daca ora este 24, partea a doua si a treia vor fi ambele 0. Nu se pot specifica Length si Scale.

- TIMESTAMP - O valoare care are 7 parti:

-anul - de la 1 la 9999

-luna - de la 1 la 12

-ziua - de la 1 la 28, 29, 30, 31

-ora - de la 0 la 24

-minutul - de la 0 la 59

-secunda - de la 0 la 59

-microsecunda - de la 0 la 999999.

Nu se pot specifica Length si Scale.

In coloana Length se trece lungimea campului.

In coloana Scale se trece numarul de zecimale.

In coloana NULLS se poate trece:

1 = NULL - este permisa valoarea NULL in tabela.

2 = NOT NULL - nu este permisa valoarea NULL si nu se furnizeaza nici o valoare implicita.

3 = NOT NULL WITH DEFAULT - nu este permisa valoarea NULL , dar se furnizeaza valori implicite in functie de tipul de data:

-CHAR - spatiu

-NUMERIC - 0

-DATE - data curenta

-TIME - timpul curent

-TIMESTAMP - data-timp curent

F6 - inserare linie dupa linia in care se afla cursorul.

F10 - copiere linie - se copiaza intreaga linie pe care se afla cursorul pe linia imediat urmatoare.

F21 - se afiseaza fraza SQL.

Observatie Prin comanda CREATE TABLE nu se pot introduce campuri cheie. SQL citeste secvential toate tabelele. Pentru a accesa inregistrarile in alta ordine se pot crea indecsi cu comanda CREATE INDEX. echivalentul fisierului logic simplu

Prin comanda CREATE TABLE nu se poate specifica antetul coloanei (COLHDG din DDS). Pentru aceasta se poate folosi si comanda LABEL ON . In comanda LABEL ON, etichetele pot avea pana la 60 bytes lungime. Fiecare rand va avea 20 bytes. Textul etichetei se trece intre apostrofuri.

Exercitii:

1)-Sa se creeze in SQL, folosind comanda CREATE TABLE fisierul FACTGSQL cu urmatoarea structura:

NRFACT - caracter 10

DATAFACT - data calendaristica

CODBEN - caracter 10

Sa se creeze in SQL fisierul FACTPSQL cu urmatoarea structura

NRFACT - caracter 10

CODPR - caracter 10

VALOARE - numeric 16 cu 2 la partea zecimala

CANTITATE - numeric 10 cu 2 la partea zecimala

Folosind comanda LABEL ON sa se creeze etichete pentru coloanele fisierului FACTGSQL

-Numar factura

-Data facturii

-Cod fiscal

Folosind comanda LABEL ON sa se creeze etichete pentru coloanele fisierului FACTPSQL

-Numar factura

-Data facturii

-Valoare

-Cantitate

c) CREATE INDEX - Comanda creeaza o cale de acces pentru o tabela. Un index nu este o parte a tabelei. Este similar cu fisierul logic. Campurile selectate din fisierul fizic vor forma cheia. O cheie poate fi compusa din mai multe campuri.

CREATE INDEX + F4 :

- se introduce numele indexului si biblioteca

- se introduce numele fisierului pentru care se creeaza indexul si numele bibliotecii.

- se introduce tipul indexului:

- 1 - nici-o constrangere sau restrictie

- 2 - UNIQUE - nu se permite ca fisierul fizic sa contina doua sau mai multe randuri cu aceeasi valoare a campului cheie.

- DISTINCT VALUES - numarul de valori distincte a campului cheie.

- Dupa ce se apasa Enter apare ecranul in care se aleg campurile din fisierul fizic care vor forma cheia.

- In coloana SEQ se precizeaza ordinea campului in cadrul cheii (un numar de la 1 la 99).

- In coloana Order se trece:

- A = Ascending - ordonare in ordine crescatoare a valorii din campul cheie.

- D = Descending - ordonare descrescatoare.

d) CREATE VIEW - cu aceasta comanda se poate crea o vedere (similar cu fisierele logice de tip JOIN).

- Pentru a crea un VIEW, se precizeaza numele vederii care trebuie sa fie unic in biblioteca respectiva si trebuie sa respecte conventiile de denumire a fisierelor din AS400.

- Se precizeaza fisierele pe baza carora se realizeaza vederea.

- Se precizeaza tipul de JOIN.

- Se selecteaza campurile care vor face parte din vedere.

e) Comanda ALTER - modificare tabel. Permite adaugarea, modificarea, stergerea coloanelor dintr-o tabela.

f) Comanda DROP - stergere colectie, tabela, index, vedere.

v    Comenzi pentru manipularea inregistrarilor din fisiere

SELECT - selectare inregistrari

UPDATE - modificare inregistrari

INSERT - adaugare inregistrari

DELETE - stergere inregistrari.

g) Comanda SELECT - folosita pentru selectarea inregistrarilor din fisiere. Comanda se compune din verbul SELECT si mai multe clauze numite predicate.

SELECT........

FROM.....

WHERE.....

GROUP BY...

HAVING....

ORDER BY...

Clauzele trebuie specificate in aceasta ordine.

Nu este obligatorie specificarea tuturor acestor clauze.

1) Dupa SELECT se poate trece:

- * -se selecteaza toate campurile fisierului

- numele campurilor pe care le dorim selectate separate de virgula. Campurile se pot trece si in alta ordine decat cea in care apar ele in fisier.

- functii SQL cum ar fi SUM, MAX, MIN, COUNT.

2) FROM - se specifica fisierul, tabela, indexul sau vederea din care se face selectia.

3) WHERE - se precizeaza conditii de selectie. Vor fi selectate doar inregistrarile care indeplinesc aceste conditii. Operatori care se pot folosi:

- Scadere

+ Adunare

/ Impartire

* Inmultire

< Mai mic

> Mai mare

= Egal

<= Mai mic sau egal

>= Mai mare sau egal

AND operator logic si

OR operator logic sau

Pentru a preciza mai multe conditii se vor folosi operatorii logici AND sau OR.

4) GROUP BY - gruparea inregistrarilor selectate dupa un anumit camp.

5) HAVING - se vor selecta doar grupurile care indeplinesc conditiile specificate aici.

6) ORDER BY - se precizeaza campurile dupa care dorim sa fie ordonate inregistrarile selectate.

Pentru introducerea frazei SQL se poate folosi F4 atat pentru verbul SELECT cat si pentru cele 5 clauze.

Daca nu dorim sa se selecteze randurile identice , se va trece Y la Distinct records in result file.

Daca dorim sa se afiseze inregistrarile din mai multe fisiere, se trece Y la Union with another select (similar cu fisierul logic tip UNION).

In mod implicit, inregistrarile selectate sunt afisate pe ecran. Daca dorim ca inregistrarile selectate sa fie scrise intr-un fisier sau sa fie tiparite, apasam F13 = Services si la Output se alege fisier sau printer.

Exemple

- Sa se selecteze toate inregistrarile din fisierele GRADEPF98 si GRADEPF99 utilizand optiunea UNION with another select.

- Sa se scrie fraza SQL pentru aflarea numarului de inregistrari din fisierul FACTG.

SELECT COUNT(*) FROM FACTG

- Sa se scrie fraza SQL pentru selectarea tuturor inregistrarilor din fisierul FACTG.

SELECT * FROM FACTG

- Sa se scrie fraza SQL pentru a selecta campurile DATAFACT si NRFACT din fisierul FACTG, ordonate dupa DATAFACT.

SELECT DATAFACT, NRFACT FROM FACTG ORDER BY DATAFACT

- Sa se scrie fraza SQL pentru a selecta numarul de clienti din FACTG.

SELECT COUNT(DISTINCT(CODBEN)) FROM FACTG

.Sa se scrie fraza SQL pentru a afla numarul de facturi ale clientului CL01

SELECT COUNT(NRFACT) FROM FACTG WHERE CODBEN = 'CL01'

- Sa se scrie fraza SQL pentru a afla numarul de facturi ale clientului CL01', emise in luna februarie 2006 (din fisierul FACTG).

SELECT COUNT(NRFACT) FROM FACTG WHERE CODBEN = 'CL01'

AND DATAFACT >= 20060201 AND DATAFACT <= 20060228

- Sa se scrie fraza SQL pentru a afla numarul de produse distincte din fisierul FACTP

SELECT COUNT(DISTINCT(CODPR)) FROM FACTP

- Sa se scrie fraza SQL pentru a afla valoarea minima de pe o factura din fisierul FACTP.

SELECT MIN(VALOARE) FROM FACTP

- Sa se scrie fraza SQL pentru a afla cea mai mare cantitate de pe o factura din fisierul FACTP.

SELECT MAX(CANTIT) FROM FACTP

- Sa se scrie fraza SQL pentru a afla valoarea totala a facturilor din FACTP.

SELECT SUM(VALOARE) FROM FACTP

- Sa se scrie fraza SQL pentru a afla valoarea totala a facturilor din februarie.

SELECT SUM(B.VALOARE) FROM FACTG A, FACTP B WHERE

A.NRFACT = B.NRFACT AND A.DATAFACT >= 20060201

AND A.DATAFACT <= 20060228

- Sa se scrie fraza SQL pentru a afla valoarea totala a facturilor clientului 'CL01' din luna februarie (din fisierele FACTG si FACTP).

SELECT SUM(B.VALOARE) FROM FACTG A, FACTP B WHERE

A.NRFACT = B.NRFACT AND A.CODBEN = 'CL01'

AND A.DATAFACT >= 20060201

AND A.DATAFACT <= 20060228

- Sa se scrie fraza SQL pentru a afla valoarea medie a facturilor din fisierul FACTP.

SELECT AVG(VALOARE) FROM FACTP

h) Comanda UPDATE - permite modificarea inregistrarilor dintr-un fisier

UPDATE....

SET....

WHERE..

Dupa verbul UPDATE se trece numele fisierului.

La SET se trece noua valoare a campului din fisier.

Cu WHERE se pot preciza conditiile care trebuie sa fie indeplinite pentru a se modifica inregitrarile. Daca nu se specifica clauza WHERE, se vor modifica toate inregistrarile din fisier.

Exemple

- Sa se schimbe codul clientului 'CL01 in CLIENT1' in fisierul FACTG :

UPDATE FACTG SET CODBEN = 'CLIENT1'

WHERE CODBEN = 'CL01'

- Sa se modifice data facturii FACTURA1 in 20060202 :

UPDATE FACTG SET DATAFACT = 20060202

WHERE NRFACT = 'FACTURA1'

- Sa se modifice fisierul FACTG astfel incat toate inregistrarile sa aiba data 20060215:

UPDATE FACTG SET DATAFACT = 20060215

i) Comanda DELETE este folosita pentru stergerea inregistrarilor din fisiere.

DELETE FROM.....

WHERE......

Dupa DELETE FROM se trece numele fisierului.

Dupa WHERE se trec conditiile. Daca nu se specifica clauza WHERE, vor fi sterse toate inregistrarile din fisier.

Exemple

- Sa se stearga toate inregistrarile din fisierul FACTG

DELETE FROM FACTG

- Sa se stearga toate facturile clientului 'CLIENT2' din fisierul FACTG

DELETE FROM FACTG WHERE CODBEN = 'CLIENT2'

j) Comanda INSERT se foloseste pentru inserarea (adaugarea) de inregistrari in fisiere.

INSERT INTO.......

VALUES (..., ...)

Dupa INSERT INTO se trece numele fisierului. Parametrii clauzei VALUES sunt valorile campurilor, in ordinea in care apar campurile in fisier. Valorile de tip caracter se trec intre apostrofuri.

UTILITARUL QUERY

Utilitarul QUERY permite efectuarea urmatoarelor operatii asupra fisierelor bazei de date :

- selectarea si ordonarea inregistrarilor

- selectarea si aranjarea campurilor

- crearea unor noi campuri pe baza campurilor existente (campuri calculate sau concatenate)

- calcularea totalurilor si subtotalurilor pe coloana

- realizarea de rapoarte

- afisarea datelor selectate pe ecran

- tiparirea datelor la imprimanta

- crearea unui nou fisier care va contine inregistrarile selectate.

Pentru a porni utilitarul QUERY se tasteaza in linia de comanda WRKQRY si se apasa Enter.

Apare ecranul Work With Querys. Aici avem mai multe optiuni:

1 - Crearea unui nou Query

2 - Modificarea unui Query existent

3 - Copierea unui Query

4 - Stergerea unui Query

5 - Afisarea unui Query

6 - Tiparirea unui Query

8 - Rularea in batch - acest tip de rulare permite utilizatorului sa-si utilizeze sesiunea de lucru si in acelasi timp sa ruleze un program sau un Query.

9 - Rularea imediata a unui Query.

Tot in acest ecran se introduce numele interogarii si biblioteca in care se afla.

Dupa Enter se afiseaza ecranul Define the Query.

Cu optiunea 1 se selecteaza categoriile de definire a interogarii :

1) Specify file selections - se specifica fisierul sau fisierele cu care va lucra Query. Daca se lucreaza cu mai multe fisiere, se apasa F9 si se specifica si celelalte fisiere. Va trebui specificat modul in care se leaga fisierele (tipul de JOIN). Avem trei optiuni :

1 - INNER JOIN

2 - LEFT OUTER JOIN

3 - se iau doar inregistrarile din fisierul secundar care nu se gasesc in fisierul primar.

Vor trebui specificate campurile dupa care se face legatura.

2) Define result fields

In acest ecran se pot defini campuri noi, create pe baza campurilor existente.

- In coloana FIELD se trece numele noului camp.

- In coloana EXPRESSION se introduce expresia matematica prin care din doua sau mai multe campuri rezulta noul camp.

- In coloana LEN se trece lungimea noului camp

- In coloana DEC se trece numarul de zecimale

- In coloana COLUMN HEADING se trece antetul de coloana

- Pentru obtinerea unui camp rezultant exista mai multi operatori care au ca operanzi campurile din fisiere. Operanzii trebuie sa fie de acelasi tip (numeric cu numeric, caracter cu caracter).

- Pentru campurile numerice se pot folosi operatorii aritmetici +, -, /, *

- Pentru campurile de tip caracter se pot folosi operatorii:

- SUBSTR - pentru a extrage un subsir dintr-un camp de tip caracter.

SUBSTR are urmatoarele argumente: numele campului din care se extrage un subsir, pozitia din care incepe extragerea subsirului si lungimea subsirului extras.

Exemplu:

Extragem din campul CODPR un subsir de lungime 3 incepand din pozitia a cincea.

Daca CODPR=PRODUSUL10

SUBSTR(CODPR,5,3) va genera o valoare USU pentru noul camp.

- Pentru concatenare se foloseste operatorul║. Se scrie numele unui camp urmat de caracterul si de numele urmatorului camp.

3) Select and sequence fields - se selecteza campurile pe care le dorim introduse in raport si definim ordinea aparitiei lor. Se trece un numar de ordine in dreptul fiecarui camp pe care il dorim inclus in raport.

4) Select records - se selecteaza inregistrarile dupa anumite criterii.

In coloana FIELD se trece numele campului care se testeaza.

In coloana TEST se pot trece operatorii de comparatie :

- EQ, NE, LE, GE, LT, GT

- RANGE - se stabileste o valoare minima si o valoare maxima (un domeniu)

- LIST - se compara valorile din camp cu o lista de valori

- LIKE - cauta un subsir intr-un camp. Se foloseste semnul % care are semnificatia de orice caracter

Exemple:

- Toate numele care incep cu A: NUME LIKE 'A%'

- Toate numele care contin 'ESC': NUME LIKE '%ESC%'

-operatorii NLIKE si NLIST au functii inverse lui LIKE si LIST.

In orice moment al crearii interogarii se poate apasa F5 pentru a vedea cum va arata interogarea cu actualele definitii.

5) Select Sort Fields - se precizeaza campurile dupa care vor fi sortate inregistrarile. Se poate face sortarea dupa unul sau mai multe campuri in ordine crescatoare sau descrescatoare.

6) Specify Report Column Formatting - Daca dorim sa tiparim raportul creat, in acest loc se precizeaza titlurile coloanelor care vor aparea in raport.

- In coloana Field este scris numele campului din fisier.

- In coloana Column Spacing se specifica distanta dintre o coloana si coloana urmatoare.

- In coloana Column Heading se specifica numele care va aparea in raport, un nume mai explicit pentru campul din fisierul fizic.

7) Select report summary functions - se pot specifica functii statistice pentru campurile fisierelor fizice.

1 - Total - suma valorilor unui camp numeric din inregistrarile selectate

2 - Average - media aritmetica a valorilor unui camp numeric din inregistrarile selectate

3 - Minimum - valoarea minima din campul respectiv

4 - Maximum - valoarea maxima din campul respectiv

5 - Count - contor, numara inregistrarile selectate

8) Define Report Breaks - permite gruparea datelor dupa unul sau mai multe campuri de grupare. Inainte de a intra in aceasta optiune trebuie specificate campurile de sortare in Select Sort Fields. Apoi se specifica nivelul de grupare al campurilor. Dupa completarea nivelurilor de grupare se intra in ecranul Format Report Break. Aici se poate suprima afisarea numelor pentru campul respectiv si se poate specifica un text pentru nivelul de grupare respectiv.

Break level = 0 este implicit si se refera la totalitatea datelor din raport.

Urmatorul ecran Format Report Break ne da nivelul de break imediat urmator. In campul Break text se poate scrie un text urmat de &xxxx unde xxxx este campul pe al carui nivel se lucreaza.

Exemplu

Daca dorim sa facem o grupare dupa clienti (dupa campul CODBEN) se poate trece la Break text : Total &CODBEN, iar in raport va aparea la sfarsitul fiecarui grup Total cod client.

Daca dorim o grupare pe ani, trecem Total &Anul, iar in raport va aparea de exemplu:

Total 2005

Total 2006 etc.

9) Select output type and output form

Permite specificarea iesirii raportului:

1 - Display - ecran

2 - Printer - imprimanta

3 - Database file - fisier fizic

Tot aici se poate specifica tipul de raport:

= Detail - raport detaliat

2 = Sumary only - doar rezultatele functiilor statistice

Daca se alege optiunea 2 = Printer la tipul de iesire, apare ecranul Define printer output:

- In campul Printer se completeaza numele imprimantei

- In campul Length se trece numarul de linii ce poate fi tiparit pe o pagina (96)

- In campul Width se trece numarul de caractere pe o linie (132, 134)

- In campul Start Line se trece linia de unde incepe tiparirea (1)

- End Line - unde se termina tiparirea si se face saltul la pagina noua.

- Line Spacing - numarul de spatii goale intre doua linii tiparite

- Print definition - se trece Y daca se doreste tiparirea definitiei interogarii.

Dupa Enter se trece in ecranul Define spooled output :

- Se defineste fisierul Spool atasat imprimantei

- In campul Spool the output, daca se trece Y, atunci raportul nu va mai fi scos la imprimanta ci intr-un fisier spool la care avem acces cu comanda WRKSPLF.

Dupa Enter, va aparea ecranul Specify cover page.

Cover page este o pagina cu informatii generale despre Query care apare inainte de lista propriu-zisa. Se poate specifica un titlu pentru aceasta pagina completand campul Cover page title.

Dupa Enter va aparea ecranul Specify page headings and footings.

In acest ecran putem specifica antetul si subsolul paginii.

Daca se pune Y in campul Print Standard Page Headings, sistemul va tipari un antet standard. In general se trece N si se defineste un antet dorit de utilizator.

In campul Page Heading se trece titlul raportului.

In campul Page Footing se pot specifica informatii care vor fi inscrise la sfarsitul fiecarei pagini.

In acest ecran mai este posibila utilizarea a trei variabile sistem :

- &DATE - data sistemului

- &TIME - ora sistemului

- &PAGE - numarul paginii

Daca in ecranul Select output type and output form se trece optiunea 3 la tipul de iesire, raportul va fi depus intr-un fisier de date.

Dupa Enter se ajunge in ecranul Define Database File Output.

In acest ecran avem cinci optiuni de completare a campului Data in file :

1-Se creeaza un fisier nou

2-Peste datele vechi din fisierul deja creat, la o noua rulare a interogarii se depun datele noi, cele vechi fiind sterse, iar toate caracteristicile fisierului creat sunt modificate automat conform noilor conditii.

3 - Se adauga un nou membru la fisier

4 - Se rescrie vechiul membru

5 - Se adauga inregistrari la un membru existent (cele anterioare se pastreaza).

In cazul in care inregistrarile au fost grupate dupa anumite campuri si s-au definit nivele de break, in fisierul creat de sistem vom avea un camp numit BREAKLVL ce va contine numarul de break definit in Query. De asemenea, campurile din Query carora li s-a atasat o functie statistica, vor fi redenumite in fisierul creat de sistem dupa regula :

- nume campOn unde :

n=1 pentru Total

n=2 pentru Average

n=3 pentru Minim

n=4 pentru Maxim

n=5 pentru Count.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


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