ALTE DOCUMENTE
|
||
Importuri-exporturi de date
1.Transferul de date între fisiere si tablouri
De multe ori folosirea tablourilor de date este preferabila folosirii fisierelor de date deoarece viteza de accesare a memori 13313x231n ei este net superioara vitezei de accesare a discului. De ex, sortarea unui masiv este mult mai rapida decât sortarea unui fisier. Comunicarea între baze de date si tablouri se realizeaza în ambele sensuri prin comezi corespunzatoare.
1.1.APPEND FROM ARRAY <tablou> [FOR<cond>] [FIELDS <lista-camp>]
Se adauga la baza de date articolele preluate dintr-un tablou; fiecare linie corespunde unei înregistrari; coloanele se copie în ordinea câmpurilor; se ignora elementele în plus; câmpurile în plus se completeaza automat cu valori vide. Se face conversia la tipul câmpului.
Exemplu: fie tabela ELEVI.DBF, sa se adauge elementele masivului NOTE.
ELEVI_IMPORT.DBF NOTE[2,6]
nume |
rom |
mate |
fiz |
|
||
Ion | ||||||
x | ||||||
|
append from array
note
1.2.GATHER FROM<tablou>/MEMVAR[FIELDS<LISTA-CAMP>][memo]
Comanda permite copierea continutului vectorului <tablou> sau a unor variabile de memorie cu acelasi identificator (MEMVAR) în înregistrarea curenta din baza de date activa. Copierea se face de la stânga la dreapta în ordinea coloanelor daca nu este precizata clauza FIELDS. Clauza MEMO este necesara daca printre câmpurile de copiat se gaseste si un câmp memo.
Exemplu: se doreste adaugarea unui elev cu notele sale în tabela elevi:
varianta1 varianta2 linia de comanda
declare a(5)
a[1]='Luca Matei' accept 'numele elevului' to nume do elevi_imp
a[2]=8 input 'nota la rom' to rom
a[3]=8 input 'nota la mate' to mate
a[4]=7 input 'nota la fizica' to fiz
a[5]=8 input 'nota la chimie' to ch
use elevi_import use elevi_import
append blank append blank
gather from a gather memvar
use elevi_import use elevi_import
list list
1.3.COPY TO ARRAY <tablou> [FIELDS <lista-campuri>][<domeniu>] [FOR <cond>][WHILE <cond>]
Comanda realizeaza trecerea articolelor din baza de date într-un tablou astfel încât articolul devine o linie. Daca numarul de înregistrari depaseste numarul de linii se ignora cele în plus.
use elevi_imp
copy to array note for rom=10
DISPLAY MEMORY LIKE note
1.4.SCATTER [FIELDS <lista-camp>][memo] TO <tablou>/MEMVAR
Câmpurile din baza de date activa specificate în clauza FIELDS (sau toate câmpurile, optiune implicita) se vor copia în tabloul din clauza TO <tablou> sau în variabilele specificate (clauza MEMVAR).
Exemplu:
use elevi_import
go top
scatter memvar
?m.nume, m.mate, m.rom, m.fiz
1.5.REPLACE FROM ARRAY <tablou> [FIELDS <lista-campuri>] <domeniu> [FOR <cond>] [WHILE <cond>]
Comanda realizeaza corectia unor valori ale bazei de date prin utilizarea tablourilor. Se înlocuiesc cu elementele din tabloul specificat acele valori care corespund câmpurilor din clauza FIELDS (implicit toate câmpurile). Comanda REPLACE are ca domeniu implicit articolul curent.
Exercitiul 1: Presupunem ca pentru sutinerea examenului de bacalaureat la informatica, elevii au fost împartiti în 3 comisii, fiecare comisie organizându-si singura examenul si evidenta elevilor. Se cere concatenarea datelor în vederea calcularii mediei si afisarii rezultatelor.
COMISIE1.BDF COMISIE2.BDF
nume |
P1 |
P2 |
Proiect |
Albu | |||
Andrei | |||
Aurel |
Nume |
Proba1 |
Proba2 |
Atestat |
Barbu | |||
Baciu | |||
Bucur |
Nume |
Pr1 |
Pr2 |
Pro |
Carp | |||
Carbunaru |
|
||
Cocea |
COMISIE3.BDF
use comisie1 in 1
use comisie2 in 2
use comisie3 in 3
select 4
create dbf bac (nume C(6), proba1 N(5,2), proba2 N(5,2), proiect N(5,2))
sele 1
copy to array a
sele 2
copy to array b fields nume, proba1, proba2, atestat
sele 3
copy to array c fields nume, pr1, pr2, pro
sele 4
append from array a
append from array b
append from array c
use bac
list
2.Importul - exportul de date
Transferul de informatii între produse program, sau mai bine spus între baze de date tip Xbase si alte tipuri de fisiere se poate face în ambele sensuri prin comenzi speciale.
2.1.APPEND FROM <fisier> TYPE<tip-fisier>
Comanda APPEND permite trecerea datelor din fisierul de tip special (indicat în clauza TYPE ) în baza de date activa. <tip-fis> poate fi:
DELIMITED/ DELIMITED WITH <car> - atunci când fisierul sursa este în format ASCII sau ale caror câmpuri sunt delimitate de <car>;
DELIMITED WITH BLANK pentru fisiere ale caror câmpuri sunt delimitate de spatiu;
SDF pentru fisier ASCII format data sistem (extensie.txt);
WKS pentru fisier LOTUS 1-2-3, etc.
2.2.COPY TO <fisier> TYPE <tip-fisier> - permite transferul de date dintr-o tabela .DBF în alt fisier. Clauza TYPE are aceleasi valori ca la comanda APPEND FROM.
2.3.IMPORT FROM <fisier> TYPE PDOX/RPD/WKS/WRK/XLS - realizeaza conversia unui fisier de alt tip într-un fisier de tip .DBF
2.4.EXPORT TO <fisier> FIELDS<lista-campuri>[<domeniu>][FOR<cond>] [WHILE <cond>][TYPE] DIF/MOD/WKS/WRK/XLS
Se copie înregistrarile selectate cu clauzele FOR, while <domeniu> în fisierul <fisier> de tipul specificat. Se va putea indica si lista câmpurilor care vor fi copiate în clauza FIELDS.
Exemplu: fie tabela ELEVI.bdf cu urmatorul continut
nume |
dn |
cls |
absm |
Absn |
M1 |
M2 |
M3 |
An |
Bi |
|
Popescu |
11a | |||||||||
Ionescu |
11a | |||||||||
Zaharescu |
11b | |||||||||
Fictiv |
11b | |||||||||
Albu |
11a |
copy to xxx delimited && operatie de copiere într-un fisier text
type xxx.txt
copy to xxx delimited blank
type xxx.txt
copy to xxx delimited with blank
type xxx.txt
copy to xxx delimited with tab
type xxx.txt
copy to xxx delimited
type xxx.txt
append from xxx delimited && se adauga datele din xxx.txt
go 6 && ne pozitionam pe înregistrarea nr 6
delete rest
pack
copy to zzz type sdf && realizam exportul bazei de date sub forma standard
type zzz.txt
2.5. Realizarea interactiva a operatiei de copiere
Indiferent de tipul fisierului destinatie, fie tot un fisier tabela Xbase, fie un alt tip de fisier utilizat în aplicatiile de gestiune a foilor de calcul sau baze de date, se deschide fereastra File Export. Optiunile asociate operatiei de exportare vizeaza filtrarea articolelor (clauzele Scope, For, While) si selectarea câmpurilor care vor fi copiate (clauza Fields).
O fereastra asemanatoare se dechide pentru operatia de importare/ adaugare de date din fisier baza de date sau alt tip de fisier.
|