Deoarece volumul de articol nu permite să prezinte materialul complet (da această sarcină sau a pune), voi descrie pe scurt etapele minime necesare pentru a crea o versiune de lucru a aplicației. Ca parte a articolului vom încerca să dezvolte un program de contabilitate a ordinelor (în care zona vă decideți să faceți, din moment ce sistemul în principiu, universal), care se va prezenta de referință a clientului, catalogul de produse și de fapt, el ordona revista. Am decis să iau această temă, deoarece destul de tipic, și foarte adesea prezente în sistemele de informații.
Înainte de a scrie o cerere, în conformitate cu teoria creării sistemelor informatice, și lucrăm la o aplicație și un mini-sistem, este necesar să se efectueze un design așa-numita bază de date fizice, și anume a crea un model de date fizic - un circuit care se va reflecta tabelul generat și relația dintre ele. În general, profesioniștii (în înțelegerea mea este oamenii care câștigă un trai), este utilizat pentru a proiecta baza de date așa-numitele CASE-tools, software-ul pentru crearea de scheme de baze de date (logice / fizice), care permite apoi să genereze circuitul proiectat pentru baza de date selectată, adică. e. simplifica (accelera) procesul de dezvoltare a unui sistem de informare. Noi, ca un novice pentru a înțelege ce se întâmplă va fi de a desena manual schema (folosind Paint'a).
Pentru realizarea bazei noastre de date, trebuie să creați patru tabele:
Comanda, articole de ordine, produs client.
Acum, să definească tabele cu structura.
Tabelul „Comanda“ va fi după cum urmează:
Tabelul comandă „Pozițiile“ va fi după cum urmează:
„Client“ tabel va arăta după cum urmează:
„Produsul“ tabel va fi după cum urmează:
Astfel, schema bazei de date va arata astfel:
Acest sistem are următorul: Ordinea client care conține elemente care nu sunt incluse în produsele. „Pui Foot“ la capătul săgeții indică faptul că relația unu-la-mulți, adică, același produs poate fi inclus în diferite poziții ale ordinului, în timp ce un element de comandă poate include doar un singur nume de produse. Același lucru este valabil și pentru comunicare obiecte Ordine / Comanda: o singură comandă întâlnește o mulțime de poziții, în timp ce același articol poate aparține doar o singură comandă; și Ordinul Comunicare / Client: un client poate face o mulțime de comenzi, în timp ce un singur ordin are doar un singur client.
Dar aceste reguli (restricții de domeniu) pot varia în diferite situații. De exemplu, ordinea se poate efectua mai multe clienti (si acest lucru se întâmplă). Dar, în acest proiect am o opțiune pentru ușurința de proiectare se va face.
Deci, schema noastră de bază în viitor este gata, ca să spunem așa, scheletul viitorului „sistemul informațional“.
În continuare, voi arăta cum să pună în aplicare acest sistem într-o bază de date Oracle.
Pe scurt despre Oracle spune. În această bază de date (uneori sunete cunoscut sub numele de „server“), utilizatorul lucrează cu obiecte, cele mai importante sunt (sau mai degrabă că avem nevoie):
- Mese - tabel de bază, care alcătuiesc baza de date;
- Index - indicele este creat pe o coloană sau un set de coloane;
- Vizualizări - tabele virtuale bazate pe SQL-interogări;
- Secvențe - generator de secvențe Oracle este utilizat pentru a genera automat numere de secvență unice în cache (m);
- Funcția - este un set de instrucțiuni limbaj SQL sau PL / SQL;
- Proceduri - diferite de funcții care nu returnează rezultate;
- Declanșează - Acest cod (software), care sunt stocate în baza de date și evenimentele de apel (de exemplu, introducerea de date în tabel).
Creați tabel va fi în schema SCOTT, acest sistem de formare, care este creat în mod implicit atunci când instalați serverul, parola pentru schema TIGER. Acesta va efectua toate mijloacele Sql Plus, prefer instrumente grafice pentru linia de comandă, deși este posibil, și o opțiune din linia de comandă. Deși există o varietate de instrumente vizuale pentru lucrul cu baza de date Oracle de la dezvoltatori terți, de exemplu, îmi place să folosesc un produs al Quest Software TOAD. În acest program sunt instrumente pentru crearea de obiecte de baze de date, administrare de baze de date, structuri de cercetare, proiectare, interogări etc. etc. În general, vă sfătuiesc să se uite la.
Deci, atunci când începe Sql Plus este necesară pentru a introduce un nume de utilizator, parola și baza de date la care va fi conectată:
Pentru masa clientului:
Pentru tabelul Postul:
Pentru COMANDA tabel:
Pentru a comanda tabelul de articole:
Voi încerca să explice ceea ce este ceea ce. Proiectarea CREATE TABLE creează un tabel (cred că deja ați înțeles), în paranteze listează coloanele pentru a crea tabele, respectiv, indică numele coloanei, tipul de date (în cazul în care dimensiunea este necesar), valoarea implicită (default), valoarea limitării (nu nul - valoarea determinată db), care în acest caz înseamnă că coloana trebuie să fie neapărat introdusă orice valoare, în caz contrar RDBMS se vor murdări atunci când se încearcă pentru a adăuga un rând fără date în această coloană. Astfel, prin impunerea unor restricții, avem în vedere probabilitatea ca utilizatorul va uita să introduceți datele care trebuie introduse pentru acest lucru este de a monitoriza baza de date. Sunt de acord, fără numere de ordine nu este un ordin, cel puțin în cazul în care am lucrează în acest fel, fără numărul de ordine, și nu ridica un deget.
Proiectarea CREATE INDEX creează unic indexul în tabel, este necesar să se accelereze de căutare, sortare de date într-o coloană. Index neapărat coloanele cheie și coloanele care este cel mai adesea căutare, sortare de date (de exemplu, într-o interogare).
Proiectarea ALTER ADD TABLE nume_tabel (constraint_name PRIMARY KEY (column_name)) indică baza unei coloane este cheia.
Structura ALTER TABLE nume_tabelă ADD (constraint_name FOREIGN KEY (ColumnName) REFERINȚE roditelskaya_tablitsa (ColumnName)) creează cheie externă în tabel este o coloană care va avea loc printr-o comunicare cu tabelul părinte. De exemplu, tabelul de masă Verificarea legăturii client este prin coloană ID_KL. După crearea această eliminare cheie client atunci când se leagă la cel puțin un ordin ar fi imposibil. Astfel, puse în aplicare pentru a asigura coerența datelor în baza de date. De exemplu, creați o comandă, legat de aceasta poziție, și după aceea (accidental sau deliberat) înlăturat ordinea, astfel încât aceste poziții vor pierde legătura cu o anumită ordine, și nu vor fi asociate cu oricare dintre ele, se pare, baza de date este într-o stare inconsistentă - poziția este, și nu există nici o ordine. Acum imaginați-vă: în cerere, sub forma Journal comenzilor pentru comenzile selectate sunt afișate legate doar să-l poziție, și anume utilizatorul nu va vedea celelalte intrări din baza de date, așa că vom obține câteva rânduri în starea atârnate, care nu este bun. Pentru a elimina clientul dorit va trebui să eliminați toate comenzile aferente, și anume inversa o secvență de informații de intrare.
Datorită acestor instrumente de server (SGBD), acționează ca un supraveghetor introdus corect informațiile și ștergeți-l, și poate chiar și o interdicție privind îndepărtarea ei (și am lucrat cu astfel de sisteme în cazul în care îndepărtarea este interzisă, la toate). Aceasta este așa-numitele restricții de domeniu, pe care am atât de des menționează.
Ei bine, este toate versurile continua. În continuare vom avea nevoie să pună în aplicare o contra-coloane, acest lucru se realizează prin următoarele structuri:
Pentru masa clientului:
Pentru tabelul Postul:
Pentru COMANDA tabel:
Pentru a comanda tabelul de articole:
Aici vom crea o secvență de așa-numitele, ele vor stoca valorile pentru coloana cheie, și introduceți fiecare linie va crește cu unu (coloana-count). Pentru a introduce declanșatorul aplicat valoarea secvență care operează la inserarea liniei (ÎNAINTE INSERT). Astfel, oferim o intrare valori unice în domeniu-cheie.
Acum am terminat (în sfârșit), la baza de date și sunteți gata să creați aplicația noastră, ca să spunem așa coajă de sistemul nostru de informații.
Încărcați Delphi și a crea o nouă aplicație File-> New-> VCL Forms Application (notă de faptul că această versiune de 10, 7, de exemplu, fie că este vorba: File-> New-> Application). Pentru punerea în aplicare a sistemului nostru, voi folosi componentele de acces la date dezvoltate de Borland BDE. Nu contează cât abuzat aceste componente, cred că acestea oferă affordances maxime de oportunitate ale mediului de dezvoltare. Alte mecanisme legate de date impun anumite restricții privind utilizarea lor, deși, în principiu, totul depinde de sarcina, probabil, într-un alt caz, ar fi mai eficient de a utiliza dbExpress (de exemplu, Borland recomandă utilizarea acestor componente, atunci când crearea de aplicații distribuite).
Să numim formularul nostru principal al „Jurnalul de înregistrare a ordinelor» (proprietate Caption) .Itak pe formularul principal, trebuie să adăugați o componentă la BDE fila DataBase. Apoi, dublu-clic pe această componentă, deschide fereastra de Proprietăți:
Aici, în câmpul nume prescrie numele bazei noastre (am scris numele meu manuf bazei de date), puteți scrie orice, și în numele câmpului driver ORACLE driver pentru a alege, apoi apăsați butonul valori prestabilite pentru a adăuga setările „default“. În consecință, în fereastra Editare afișează o listă de parametri, nu îndepărtați toate, dar serverul de nume, numele de utilizator și parola. Parametrul NAME server pentru a scrie numele nostru în sistemul de baze de date, nume de utilizator și o parolă, respectiv SCOTT / TIGER. De asemenea, debifați caseta pentru proprietățile Autentificare promptă (nume de utilizator și parola promptă), și menține conexiunea inactivă la conexiunea nu este deschis permanent și faceți clic pe OK. Toate proprietățile conexiunii bazei de date este configurat, puteți seta proprietatea bazei noastre de date Conectat la true pentru a verifica conexiunea, în cazul în care conexiunea este configurată incorect, va lăsa un mesaj.
Același tabel principiu se adaugă la alte tabele, componentele DataSource, fără a uita cravată lor cu Table'ami, și, desigur, nume semnificative Table'ov.
Acum, efectuați etapele finale pentru a configura componentele de acces la date (auriculare încovoia): trebuie să conectăm la masa părinte Pos_zakaza Zakaz, că acesta conține datele sunt pentru ordinea selectată. este foarte simplu în Delphi. Am sunat tabelul Pos_zakaza, selectați proprietatea în DataSource MasterSource asociat cu masa Zakaz, am această DataSource2. Apoi, în MasterFields de proprietate click pe butonul cu trei puncte și deschideți câmpul Link Designer, unde am subliniat, prin care câmp va fi organizată o relație cu masa de părinte se află în dreapta și stânga ferestre selectați ID_ZAK și faceți clic pe lângă Adăugați, respectiv, în fereastra de jos (Alăturat Fields), link-ul, faceți clic pe OK. Tot acum tabelul Pos_zakaza vor conține date corespunzătoare selectat cererea. Și nici o lucrare manuală.
Aici vom încerca să deschidă baza de date și toate tabelele în cazul unei erori (excepție), programul va afișa un mesaj, iar apoi se închide aplicația. Astfel, excludem posibilitatea programului se blochează la pornire în cazul în care nu există nici o legătură, sau alte probleme.
Apoi, du-te tot același inspector obiect, în căutarea eveniment OnDestroy a formei și a pus acest lucru:
Aici vom închide software-ul de conectare.
Vom începe prin a aduce aspectul cererii noastre de a befit minte. Nu voi descrie în detaliu forma adăugarea de componente, cum ar fi panourile și grilele (cred că puteți ghici cum să le aranjeze), arată doar ceea ce sa întâmplat:
De asemenea, doresc să adăugați aspectul formularului nostru: am adăugat o componentă MainMenu și se adaugă două puncte pentru a deschide referințele clienților și produselor, precum și, de asemenea, a adăugat un splitter la posibilitatea de a schimba poziția de masă ordine și mărimea comenzilor, dar puteți veni cu altceva, să în principiu, este o chestiune de gust.
Și, desigur, situat pe formularul DBNavigator'y pentru a naviga prin tabele prin corelarea acestora cu DataSource'ami necesară. Înainte de a lucra cu ordinele revistei, trebuie să adăugați capacitatea de a lucra cu directoare. Pentru a face acest lucru, se adaugă cele două forme de aplicare: pentru un director de produse și clienți.
Mergeți la meniul File-> New-> Form (sau pictograma din bara de instrumente) pentru a schimba numele (Caption) formulare pe directorul de client. Salvați totul. De asemenea, vom continua cu produsele Directory.
Acest director de client descoperire
Această descoperire produse Directory.
Formele de numerotare s-ar putea fi diferite. Ei bine, chiar am pus întotdeauna proprietatea Poziția formelor în poScreenCenter la momentul deschiderii o formă a apărut în centrul ecranului.
Putem emite doar o formă nouă, după cum urmează:
Manual pentru clienți:
Produse: repertoar
Acum puteți încerca să adăugați clienți și produse și de a crea comenzi.
Ei bine, aproape gata. Sistemul nostru de mini-informații este gata de funcționare. Adevărat, nu oferă multe dintre punctele (care, în principiu, nu afectează funcționarea), puteți aranja totul în mod corespunzător, dar acest lucru este din nou o chestiune de gust (cel mai probabil utilizatori ai sistemului).
Scris de: Ronin ([email protected])