Visual Foxpro 0 abc-doar


partiment cu obiectul care o apeleaza,sau sa se precizeze calea completa



Yüklə 1,41 Mb.
səhifə17/17
tarix17.03.2018
ölçüsü1,41 Mb.
#45490
1   ...   9   10   11   12   13   14   15   16   17
partiment cu obiectul care o apeleaza,sau sa se precizeze calea completa

de acces la compartimentul in care este arhivata.La nevoie,utilizati fe-

restrele Trace si Locals,pentru a identifica elementele ce pot relationa.

Situatiile cele mai delicate sunt atunci cand utilizati obiecte vizuale

pentru a genera alte obiecte vizuale,in functie de rezultatul unor ope-

ratii efectuate in tabele si baze de date.De exemplu,atunci cand utilizati

o baza de date pentru a extrage mai multe rapoarte de sinteza.Daca tabele-

analizate sunt in limite rezonabile,rapoartele produse vor fi mici,iar

programul va functiona perfect.Pe masura ce tabele devin tot mai mari,vor

creste si rapoartele generate.Daca generati simultan mai multe astfel de

rapoarte,exista riscul de a depasi spatiul de memorie.Solutia este sa

lucrati secvential.Analizati succesiv fragmente din tabel,extrageti datele

utile intr-un tampon de memorie,apoi creati si salvati primul raport.In

etapele ulterioare,procedati in mod similar pentru a crea succesiv fiecare

raport.Astfel,se vor putea crea rapoarte multiple,indiferent de numarul

de inregistrari din tabel,dar durata de executia va fi mult mai lunga.

In acest gen de situatii,programarea paralela ofera o solutie mai buna.


-118-

Pentru a putea optimiza executia unui program,trebuie sa tineti o evi-

denta stricta a volumului de memorie consumata/operatie.Exista numeroase

procedee tehnice.Cel mai simplu dintre ele,este sa fragmentati tabelele

mari in tabele mai mici si apoi sa utilizati un tabel centralizator pentru

ordonarea lor.

EXEMPLU : sa presupunem ca doriti sa formati o baza de date,pentru un

numar de 8000 de angajati.Pentru fiecare angajat,doriti sa utilizati 20

de rubrici a cate 20 de caractere.Tabelul necesar,va ocupa 8000 x 20 x 20

adica 3200000 de bytes( 3,2 M ).

Pentru a creste viteza de executie,tabelul poate fi impartit in 10 ta-

bele mai mici.Fiecare astfel de tabel,va contine 800 de angajati,adica

800 x 20 x 20 = 320000 de bytes (0,32 M).Pentru ca tabelele sa lucreze la

fel ca si unul singur,creati si un tabel centralizator.In acest tabel,

utilizati o rubrica de 20 de caractere pentru numele angajatului,una de

10 caractere pentru numele tabelului sursa si una de 10 caractere pentru

pozitia din tabelul respectiv.Acest tabel va ocupa 8000 x 20 + 8000 x 10

+ 8000 x 10 adica 320000 de bytes (0,32 M).

Pentru a lucra cu datele unuia dintre angajati,creati o interfata gra-

fica in care introduceti numele angajatului.Utilizati data respectiva

pentru a deschide tabelul centralizator,din care preluati tabelul sursa

si pozitia din tabel,apoi inchideti tabelul centralizator,pentru a elibera

memoria consumata.In continuare,deschideti tabelul sursa si deplasati

cursorul la pozitia respectiva.

Observati ca in loc sa lucreze cu 3,2 M,programul utilizeaza doar 0,32

M pentru a obtine acelasi rezultat.Este de 10 ori mai economic si mai

rapid.In plus,daca intevine o eroare de scriere a datelor,nu se va deregla

intreaga baza de date,ci doar tabelul respectiv.Orice eroare de editare

va fi de zece ori mai usor de depistat si/sau depanat.

Sistemul FoxPro,accepta orice tabel,pana la limita memoriei de operare.

In trecut,memoria de operare era de 2-4 M bytes,astfel incat aceste pro-

cedee tehnice erau absolut indispensabile.In etapa actuala,exista si con-

figuratii hardware cu memorie de RAM de peste 1000 M (1 G),astfel incat

procedele tehnice posibile sunt mult mai maleabile.Este bine sa calculati

dimensiunile tabelelor cu care lucrati,in functie de configuratia hardware

medie.In prezent,majoritatea calculatoarelor lucreaza inca cu o memorie

de RAM de 32 M.Pentru programele comerciale,este recomandabil sa nu utili-

zati tabele mai mari de 4 M,chiar daca programele functioneaza perfect.

La nevoie,tabelele se pot fragmenta arborescent.Tabelul centralizator,

contine adresa pentru alte tabele de centralizare,din care se face apoi

raspandirea spre tabelele sursa,etc.In acest mod,se pot arhiva volume

imense de date,cu consum minim de memorie de operare.Acest procedeu este

indispensabil atunci cand tabelele contin campuri Memo cu dimensiuni

variabile sau clip-uri audio-video,imagini digitale,etc...,pentru care nu

se poate face un calcul exact al memoriei consumate.

Acest gen de calcul al memoriei consumate nu se limiteaza doar la

tabele si baze de date.Daca programul contine un numar mare de obiecte

vizuale,sau lucreaza cu file de tip text si cu obiecte de tip ActiveX,

este bine sa calculati pentru fiecare etapa de executie,atat memoria

consumata cat si restul de memorie libera,astfel incat sa eviati supra-

scrierea satelor,sau blocarea executiei.Este bine sa lasti intotdeauna in

rezerva cel putin 8-10 M,pentru operatiile de rutina si "cleaning".


-119-

Visual FoxPro este un model de program orientat spre programarea mo-

dulara,structurata.Fiecare modul este inclus intr-o fila independenta,cu

extensia .scx,.qpr,.pjx,etc.Verificati dimensiunea fiecarui astfel de

modul inainte de a include fila respectiva in proiect,sau in aplicatie.

Programele se pot realiza si prin combinarea modulelor preluate din

mai multe programe diferite.La prima vedere,pare o operatie usoara,ca un

joc de copil.Simpla alaturare a unor module functionale nu va forma insa

intotdeauna un program performant.Trebuie se verificati cu atentie toate

liniile de cod din fiecare modul,dar mai ales modul in care se stabilesc

legaturile dintre doua sau mai multe astfel de module.Una dintre cele mai

frecvente probleme intalnite in aceasta etapa de dezvoltare a programelor

o reprezinta incompatibilitatile de format.

EXEMPLU : doriti sa combinati doua module de calcul si ambele module

contin o variabila cu acelasi identificator dar cu tip de data diferit

( de tip integer in primul modul si de tip double in cel de al doilea

modul).Acest gen de situatii,poate genera rezultate imprevizibile,in

functie de modul de apel( variabila double poate accepta si valorile de

tip integer,dar situatia inversa este incompatibila).

Un alt gen de situatie frecvent intalnita,este atunci cand unul dintre

modulele utilizate contine diverse subclase ale claselor standard.Aceste

subclase,vor functiona asemanator cu cele standard in unele situatii,dar

vor contine si o serie de metode si evenimente personalizate,ce pot influ-

enta negativ executia programului.

Din acest motiv,este bine sa verificati cu maximum de atentie modulele

preluate de la alti programatori.Pentru modulele realizate de d-voastra,

este bine sa arhivati si o fila de tip text,in care sa arhivati in rezumat

principalele caracteristici ale modului,cu asa numitele "puncte cheie",

sau proprietati particulare ale obiectului.In acest mod,in viitor va fi

mult mai usor sa estimati compatibilitatea dintre module.

O alta problema,relativ frecvent intalnita,este atunci cand combinati

module provenite din,sau create cu versiuni diferite ale programului

Visual FoxPro.In principiu,exista o compatibilitate destul de buna intre

aplicatiile realizate cu versiuni diferite,dar aceasta regula nu este

universal valabila.Unele dintre componente,fac apel la file externe sau

la biblioteci de tip DLL.Daca utilizati acest gen de module si nu rezol-

vati si acest gen de legaturi,programul poate stagna in etapa de cautare

a legaturilor externe,sau poate returna un mesaj de eroare,aparent inex-

plicabil (versiunile diferite au seturi diferite de biblioteci DLL).

In concluzie,programarea in Visual FoxPro,este usoara,chiar foarte

usoara,dar nu este un joc pentru copii.Este extem de important sa intele-

geti fiecare operatie din program.Nu este bine sa utilizati module sau

componente pe care nu le intelegeti,chiar daca sunt functionale.In orice

moment al executie,trebuie sa aveti controlul asupra tuturor operatiilor

executate,sau in curs de executie.Nu este bine sa copiati solutiile altor

autori,decat dupa ce verificati fiecare functie,sau comanda.Pentru orice

problema,este bine sa va confruntati cu alti colegi,sau sa cereti sfatul

unor programatori mai experimentati.

Visual FoxPro va poate extinde orizontul cognitiv,dincolo de orice ima-

ginatie,sau va poate transforma viata intr-un calvar - depinde numai de

d-voastra.

S F A R S I T
Yüklə 1,41 Mb.

Dostları ilə paylaş:
1   ...   9   10   11   12   13   14   15   16   17




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin