Tutorial 1с

Fișier = createObject ("XBASE"); // creați un link către fișierul DBF
File.Open fișierul ("catalog.dbf"); // deschideți fișierul pe disc
Pagina File.Code (1); // setați codificarea: 0 - ferestre, 1 - DOS







Dacă File.Opened () = 0 Apoi // verificați dacă fișierul a fost deschis
. Raportați ("Fișierul nu a putut fi deschis!");
Sfârșit Dacă;

File.First (); // poziție la prima înregistrare
În timp ce fișierul.În sfârșitul () = 0 Ciclul // până când am ajuns la final, rotiți ciclul
. Număr de înregistrări = fișier Număr de intrări (); // obține numărul înregistrării curente
. Numele articolului = File.NAME; // obține valoarea câmpului
. Pret = fișier.Primați valoarea paginii ("PRICE"); // și așa este posibil, dar cu greu mai lent
. File.Next (); // mergeți la următoarea înregistrare
Sfârșitul ciclului;

File.Last (); // poziție la prima înregistrare
În timp ce File.Inceputul () = 0 Ciclu // până când ajungem la început, ciclăm ciclul
. Numele articolului = File.NAME;
. Pret = File.PRICE;
. Fișier. Anterior (); // mergeți la înregistrarea anterioară
Sfârșitul ciclului;

Pentru n = 1 Prin File.Number of Entries () Cycle // totul este clar aici, în opinia mea
. File.Private (n); // poziție pe o înregistrare specifică
. Numele articolului = File.NAME;
. Pret = File.PRICE;
Sfârșitul ciclului;

File.Close fișierul (); // nu uitati, va rog

Fișier = createObject ("XBASE"); // creați un link către fișierul DBF

// determina structura fișierului
// Sintaxă: Adăugați un câmp (<Название>,<Тип>,<Длина>,<Точность>)

Câmpul File.Add ("NAME", "S", 50,0);
Câmpul File.Add ("PRICE", "N", 10,2);

File.Create un fișier ("catalog.dbf"); // creați fișierul fizic

Selectați elementele ();
În timp ce SprPovary.Get Element () = 1 ciclu
. File.Add ();
. File.NAME = SprTovary.Naming;
. File.Install ValuePage ("PRICE", SprTovary.Price) // asa ca este posibil;
. File.Record ();
Sfârșitul ciclului;

File.Close fișierul (); // nu uitati, va rog

Lucrul cu structura fișierului DBF

De exemplu, creați un fișier care este identic în structură cu fișierul sursă.
// În acest caz, se folosește metoda DescriptionField, care returnează caracteristicile câmpului cu numărul specificat
// sintaxa: DescriptionField (<НомерПоля>,<НазваниеПоля>,<Тип>,<Длина>,<Точность>)

Fișier1 = CreateObject ("XBASE");
Fișier2 = CreateObject ("XBASE");

Pentru n = 1 Prin fișier1.Număr de câmpuri () Ciclu
. Numele câmpului = "";
. Tip = "";
. Lungime = 0;
. Acuratețea = 0;
. Fișierul1.DescriptareaField (n, numeField, Tip, Lungime, Acuratețe);
. Fișierul File2.Add (numele câmpului, tipul, lungimea, precizia);
Sfârșitul ciclului;

Pentru a lucra cu un fișier DBF cu o structură necunoscută, se folosesc adesea următoarele metode:
Obțineți valoarea câmpului (<ИмяПоля>);
Setați ValueField (<ИмяПоля>,<значение>);






Lucrul cu înregistrările șterse
Fișierele DBF sunt aranjate astfel încât ștergerea unei intrări să nu ducă la ștergerea fizică a înregistrării din fișier. Înregistrarea este pur și simplu marcată pentru ștergere și omisă în timpul căutării. Astfel, dimensiunea fișierului rămâne aceeași. Pentru a șterge fizic toate înregistrările marcate pentru ștergere, trebuie să aplicați metoda Compress. Instrumentele de limbă încorporate vă permit să lucrați cu astfel de înregistrări, să le sortați și chiar să anulați marcajul pentru ștergere.

File.Show Remote (1);
File.First ();
În timp ce File.Interest () = 0 Ciclu
. Dacă fișierul este Înregistrat este șters () = 1 Apoi
. Restaurați fișierul ();
. Sfârșit Dacă;
. File.Next ();
Sfârșitul ciclului;

File.First ();
În timp ce File.Interest () = 0 Ciclu
. Dacă File.PRICE <1000 Тогда
. File.Delete ();
. Sfârșit Dacă;
. File.Next ();
Sfârșitul ciclului;

File.Change (); // șterge înregistrările fizic

Puteți șterge toate intrările din fișier dintr-o dată. În același timp, ele sunt îndepărtate fizic și nu pot fi recuperate.
File.Clear Toate ();

Merită menționat faptul că metoda Clear () șterge toate câmpurile înregistrării curente. Atributele câmpurile corespunzătoare ale numărului de tip „string“ valoare câștig „linie goală“ - 0, logic - 0, - „data gol“.

Lucrul cu indicii

Pentru a organiza ordonarea conținutului unui fișier de bază de date și căutarea în el cu valoarea unuia sau mai multor câmpuri, se utilizează mecanismul index. Aplicația sa poate fi comparată cu sortarea unui fișier de card printr-o anumită caracteristică (un set de caracteristici). Cu toate acestea, spre deosebire de un fișier de card, un fișier de bază de date poate avea mai multe indexuri simultan și, prin urmare, poate fi comandat simultan de mai multe caracteristici. Indicii sunt stocați într-un fișier index. Un fișier index poate conține informații despre mai multe indici. Se recomandă ca un fișier DBF să aibă un fișier index, în care sunt stocate toate indexurile pentru acest fișier.

Fiecare index are un nume, un semn de unicitate, o expresie a indexului și un filtru. Numele indexului este utilizat pentru a identifica indexul. expresii index și filtru sunt scrise în expresii limbaj special, calcula valoarea care, pentru fiecare intrare pentru a determina locația sa atunci când comanda și nevoia de plasarea lor într-o listă ordonată (un index poate conține referințe nu toate înregistrările de masă, ci doar despre satisfacerea expresie a filtrului). Un index unic (care are un set atribut unic) permite să aibă un indice de referință cu privire la înregistrarea numai cu o valoare diferită a expresiei indicelui.

Regula de bază: este necesar un index pentru a căuta rapid înregistrarea dorită.

Trebuie să găsim rapid Komarov. Într-un fișier sursă neordonat, îl puteți căuta doar prin căutarea secvențială a tuturor înregistrărilor, care vor fi foarte lungi, cu un număr mare de înregistrări. În index, puteți găsi Komarova foarte repede, deoarece indexul este sortat după câmpul Nume. În acest mod, învățăm numărul de înregistrare fizic în fișierul DBF și efectuăm o poziționare directă pe înregistrarea dorită.

După crearea structurii bazei de date, puteți adăuga indici după cum urmează:
// Sintaxă: Adăugați indexul (<Название>, <Выражение>, <Уникальность>, <Убывание>, <Фильтр>)

Fișier = CreateObject ("XBase");
Câmpul File.Add ("NAME", 1, 19, 3);
Câmpul File.Add ("PRICE", 2, 25, 0);
Fișierul: adăugați indexul ("IDXCODE", "CODE", 1, 0, "");
Fișier.add index ("IDXNAME", "NAME", 0, 0, "");
Fayl.DobavitIndeks ( "IDXNAMECODE", "NAME + CODE", 0, 0, "");
File.Create fișierul ("mydb.dbf", "mydb.cdx");

// Prima opțiune
File.TextingIndex ("IDXNAME");
File.Find ("Ivanov", 0); // au fost transmise valoarea și modul de căutare

// a doua opțiune
Indexul indexului de fișiere ("IDXNAMECODE");
File.NAME = "Ivanov";
Tasta File.CODE = 123;
File.SearchPlease (0);

// după eșec este recomandat să re-creați toate indexurile
Fișierul Reindex ();

ȘTIRI ALE FORUMULUI
Cavalerii teoriei eterului







Articole similare

Trimiteți-le prietenilor: