Interfața cu baza de date utilizând ASP
Formularea problemei
Mai întâi de toate, să ne dăm seama ce se cere de la noi. De fapt, aveți nevoie pentru a crea o bază de date a tuturor articolelor, se prepară unele HTML-forme pentru a descărca articolele de pe server, căutarea lor, sortare, șterge, și în cele din urmă a afișa rezultatul.
Sunt aproape sigur că această sarcină este relevantă pentru aproape orice site, mai ales că în acest fel (cu excepția căutării, sortare și ștergere) majoritatea cărților de oaspeți funcționează.
Ce avem nevoie
Crearea și pregătirea unei baze de date
În primul rând, vom crea o bază de date cu articole, pentru care:
Apoi, trebuie să vă înregistrați baza de date în secțiunea corespunzătoare a surselor de date ale sistemului, pentru aceasta:
- executați programul-configurator al surselor de date (Surse de date ODBC) - Start-> Setări-> Panou de control-> Instrumente de administrare-> Surse de date ODBC;
- accesați fila "System DSN" și creați o nouă sursă de date făcând clic pe "Add ...";
- În lista de drivere care apare, selectați driverul bazei de date Microsoft Access - "Microsoft Access Driver (* .mdb)" și faceți clic pe "Finish";
- în linia "Date sursă de date", vom specifica numele bazei noastre de date, de exemplu "Articole" (acesta este numele prin care ne vom referi în viitor);
- Faceți clic pe "Selectați ...", selectați fișierul "ArticlesDB.mdb" pregătit de noi și faceți clic pe "OK".
Ca rezultat, în lista surselor de date din sistemul dvs., linia prezentată în Fig. 3.
Proiectăm pagina principală (index.asp)
Acesta constituie, în esență, o legătură către fișierul care conține șablonul pentru afișarea articolului în sine și transmite ID-ul articolului ca parametru. Dosarul complet al șablonului este prezentat în anexa la acest articol, iar mecanismul de funcționare a acestuia poate fi rezumat după cum urmează:
Creați o pagină de pornire
Limbă de interogare structurată - SQL
Este timpul să înțelegeți ce se află în spatele liniilor:
De fapt, în spatele acestor două linii lucrăm cu baza noastră de date: primul este un șir de text cu o interogare către baza de date (șirurile de text din ASP sunt scrise în ghilimele duble); a doua - conține o directivă pentru executarea acestei interogări cu alocarea simultană a rezultatului la variabila (indicatorul pentru înregistrările din baza de date). În cadrul acestui articol, nu vom considera SQL (Structured Query Language) în toate detaliile, însă ne vom concentra doar pe cele ale operatorilor săi, fără a înțelege care lucruri suplimentare vor fi imposibile. Pentru cei cărora acest lucru pare insuficient, vă sfătuiesc să vizitați site-urile pe care le-am selectat cu documentație SQL detaliată.
Pentru o activitate deplină, trebuie să ne cunoaștem cei patru operatori ai acestei limbi puternice, proiectate special pentru lucrul cu bazele de date.
DELETE șterge acele rânduri din "Nume tabelă" care satisface condiția specificată în "Definiție" și returnează numărul de rânduri șterse. Dacă executați comanda DELETE fără clauza WHERE, atunci toate rândurile din tabelul specificat vor fi șterse. În acest caz, DELETE întoarce 0. Cuvântul LOW_PRIORITY îndepărtează operația DELETE până la terminarea citirii tabelului celorlalți clienți.
SELECT este folosit pentru a prelua rânduri (înregistrări) dintr-unul sau mai multe tabele. Expresia The_Select specifică coloanele din tabel ale căror valori doriți să le recuperați. Toate câmpurile cheie trebuie specificate în ordine strictă. De exemplu, expresia HAVING trebuie să urmeze orice expresie GROUP BY și înainte de orice clauză ORDER BY.
Expresia The_Select poate fi înlocuită cu un alias care utilizează cuvântul cheie AS. Aliasul este folosit ca identificator pentru numele coloanei și poate fi utilizat împreună cu cuvintele ORDER BY sau HAVING.
O expresie HAVING se poate referi la orice coloană sau alias din expresia _Select_Expression. Se aplică ultimei interogări, chiar înainte de trimiterea datelor către client. SELECT. INTO OUTFILE "nume fișier" scrie înregistrările selectate într-un fișier. Fișierul este creat pe server și nu poate „există deja“ (unul dintre motivele principale ale unui astfel de mecanism este de a preveni accidentală „zdrobirea“ de diverse fișiere importante).
INSERT este folosit pentru a adăuga intrări noi într-un tabel existent. Sunt permise două forme de utilizare a INSERT-ului.
Primul formular este INSERT. VALUES - introduce rânduri pe baza valorilor specificate. Al doilea formular este INSERT. SELECT - introduce rânduri selectate dintr-un alt tabel.
Cuvântul LOW_PRIORITY îndepărtează operația până la terminarea citirii din tabelul celorlalți clienți. Cuvinte cheie IGNORE comanda INSERT pentru a insera rânduri evită dublurile (utilizate în combinație cu cuvântul cheie sau unic primar). Pentru al doilea formular INSERT INTO. Operația SELECT nu poate conține o clauză ORDER BY. Tabelul, care se face pentru a adăuga intrări nu poate fi prezent în clauza FROM a instrucțiunii SELECT, astfel că este interzis să facă o selecție din același tabel în care sunt lipirea.
Înlocuita este folosit pentru a edita conținutul tabelelor și funcționează exact ca INSERT, cu excepția faptului că în cazul în care o înregistrare veche în tabel are aceeași valoare ca și înregistrarea, înregistrarea vechi se elimină înainte de a adăuga una nouă.
UPDATE actualizează câmpurile unui tabel existent cu valori noi. Expresia SET indică câmpurile (coloanele) care trebuie modificate și valorile care trebuie atribuite acestora. Clauza WHERE, dacă există, specifică care rânduri ar trebui să fie actualizate. În caz contrar, operația se aplică tuturor rândurilor din tabel. Cuvântul LOW_PRIORITY îndepărtează operația până la terminarea citirii din tabelul celorlalți clienți. Expresiile UPDATE sunt executate de la stânga la dreapta.
Actualizează valoarea câmpului Parolă în tabela WAPassword, scriind în câmpul al cărui ID este 1 valoare "passw".
Mărește valoarea câmpului de contor al mesei Counter cu 1.
Dubla vârsta câmpului și apoi adaugă 1 la valoarea sa în tabelul persondata.
Ce este Global.asa
Global.asa vă permite să executați anumite scripturi la începutul sesiunii client sau când inițializați IIS. Un exemplu în acest sens este cel mai simplu contor al numărului de vizite pe site. În plus, este permisă utilizarea mai multor fișiere Global.asa. Cu toate acestea, rețineți că scriptul ASP caută cel mai apropiat fișier (situat în același director) Global.asa și îl folosește.
De fapt, acest fișier poate conține patru din script-ul: primul va rula în timpul inițializării, IIS / PWS (Application_OnStart), al doilea - atunci când opriți serviciul IIS / PWS (Application_OnEnd) (de obicei, primele două script-urile funcționează în procesul de repornire a computerului), și două script pentru a fi rulat în plus pentru a inițializa sesiunea utilizatorului (Session_OnStart) și la capătul său (Session_OnEnd). Această schemă seamănă foarte mult cu perechea "constructor-distrugător". Pentru nimic orice variabilă care trebuie să fie utilizată (de exemplu, în sesiunea curentă) poate fi inițializat Session_OnStart pentru a fi utilizate în timpul sesiunii, acesta este eliminat, de asemenea, (setat la zero) în Session_OnEnd.
Exemplu de fișier Global.asa
Adăugarea unui articol nou (UploadForm.asp și Upload2DBS.asp)
Acum, că am înțeles SQL, puteți începe să adăugați un nou articol, și de a face acest lucru, vom fi direct de pe site, pentru a fi exact - direct de la HTML-forme. Pentru a face acest lucru, mai întâi creați un fișier cu formularul în sine și definiți răspunsul script-ului la confirmare (butonul "Publicarea articolului!"). (Se presupune că cititorul este familiarizat cu elementele de bază ale construirii formularelor HTML, așa că vom examina acest proces fără a intra în detaliile formării formelor.)
În primul rând, sarcina în acest stadiu ar trebui clarificată. Deci, evident, următoarele:
- nu este dreptul tuturor să descarce articole de pe site (prin urmare, este de dorit să furnizeze o parolă pentru accesarea acestei caracteristici);
- fiecare articol are un subiect specific (titlu) și nu poate fi arbitrar, ci ar trebui selectat din listă;
- Lista poate fi stocată direct în fișierul HTML și, de fiecare dată când îl modificați, modificați fișierul în sine. Aceasta este cea mai ușoară și mai rapidă cale;
- Cu toate acestea, pentru a vă permite să modificați dinamic și să completați această listă, este recomandat să o păstrați în baza de date. Acest lucru va permite utilizatorilor să își modifice arbitrar conținutul și nu va necesita modificarea formularului. Pentru simplitate, ia în considerare mai întâi opțiunea cu un rubricator încorporat (cusut cu greutate).
Acum, să ne uităm la esența lucrării viitoare. Ce ar trebui să facă reacția noastră de script?
Și mai mult. Înainte de a începe să pună în aplicare obiectivele noastre, ar trebui spus despre o altă mică problemă: atunci când inserăm în baza de date a textului de celule, formatați-l (chiar și cele mai simple) nu vor fi reținute în viitor nu poate fi corect afișate pe pagina HTML, deoarece Câmpul Memo stochează un șir de text neformatat. Pentru a evita acest lucru, ar trebui să scrie o funcție care va produce un primitiv format HTML a intrat în text, înainte de a scrie la baza de date. Cu alte cuvinte, în cazul cel mai de bază (cel puțin pentru a păstra defalcarea original pe linia), funcția trebuie să introduceți capătul liniei de cod, în cazul în care în fluxul de intrare sunt linii de transport caractere.
Ștergeți articolul (RemoveForm.asp și Rem.asp)
Ar fi frumos să se prevadă posibilitatea de a scoate articolul pe site-ul nostru: în primul rând, ea poate fi de actualitate, și în al doilea rând, în procesul de preparare a acestuia nu sunt excluse inadvertențe sau erori tipografice. Locui pe formular nu va elimina în articol, cu excepția a spune că acesta conține doar elemente interacționează cu PC-ul și butonul (a se vedea fișierul RemoveForm.asp.) Șterge, și imediat trece să ia în considerare în mod direct procesul de eliminare:
O atenție deosebită trebuie acordată primele două linii. Ei obțin valoarea variabilei globale a sesiunii curente de lucru cu valoarea identificatorului articolului curent (în cazul nostru, șters), care a fost inițializat (fișierul ArtTmp.htm) cu următoarea linie:
Organizăm căutarea (SearchForm.asp și SearchDBS.asp)
După cum știți, fără a căuta navigarea în nici o bază de date solidă este imposibilă în principiu. Vom încerca să organizăm căutarea articolului în funcție de rechizitele sale și vom încerca să organizăm o căutare booleană (logică), legând valorile separate ale criteriilor de căutare folosind logica "AND / OR".
Din nou, fără a se concentra asupra formularului de căutare (fișierul SearchForm.asp), hai să mergem direct la procesul de căutare real:
Cel mai interesant se întâmplă când se formează o interogare în baza de date a componentelor:
În funcție de combinația câmpurilor sursă introduse de utilizator, aceste componente formează cererea finală, în special pentru câmpurile "Autor" și "Titlu". Există patru cazuri posibile: ambele câmpuri sunt goale, primul câmp este gol, al doilea câmp este gol și ambele câmpuri nu sunt goale. Șirul de interogare SQL corespunzător în fiecare dintre aceste cazuri este format în felul său. Același lucru este valabil și pentru starea selectorilor titlurilor articolelor și ordinea de sortare a acestora. Atunci când se adaugă unul sau alt substring, se ia în considerare starea butoanelor radio "AND / OR", iar subrubrica corespunzătoare se adaugă la interogarea SQL, precedată de elementul logic "și" respectiv "sau" respectiv. După ce cererea finală este generată, aceasta este executată, iar pagina rezultată este formată pe baza articolelor care îndeplinesc criteriile.
Codul complet al exemplelor din articol, inclusiv fișierul bazei de date, este pe CD-ROM-ul nostru.
Și în concluzie
EasyASP 4.0 este disponibil pe CD-ROM-ul nostru.
Printre numeroasele site-uri am selectat acele persoane a căror vizită a fost deosebit de utilă pentru mine și pe care am vrut să le familiarizez cu cititorii, și anume:
Exemple de cod ASP pentru profesioniști
Referința SQL și site-ul exemplu - material SQL bine structurat
Mai recent, Cougar a introdus o nouă serie de surse de alimentare pentru PC-urile tradiționale - VTX, destinate utilizatorilor cu un buget limitat. În această revizuire, va fi luat în considerare modelul Cougar VTX600, care datorită caracteristicilor sale va fi unul dintre cele mai populare în această linie de surse de alimentare
La evenimentul anual Capsaicin SIGGRAPH din Los Angeles, AMD și-a consolidat poziția pe piața de PC-uri high-end cu noii procesori Ryzen Threadripper și GPU "Vega"
Pentru o construcție simplă și convenabilă a utilizatorilor obișnuiți companie de rețea ZyXEL a lansat urmatoarea versiune a platformei sale de Internet pentru conectarea la rețelele 3G / 4G prin USB-modem cu punct de acces Wi-Fi - ZyXEL Keenetic 4G III, pe care le considerăm în această recenzie
Pentru două modele sale și astfel o mare familie de routere ASUS și compania router a adaugat recent foarte interesant: nava amiral 4G-AC55U și mai ușor 4G-N12. Acest articol va lua în considerare modelul emblematic ASUS 4G-AC55U
Young dar ambitioasa companie KREZ la inceputul acestui an a lansat un nou, model de laptop original, KREZ Ninja (modelul TM1102B32) care rulează Windows 10. Deoarece acest computer are un ecran pivotant, acesta poate servi ca o soluție universală - poate fi folosit cu succes pentru muncă, și pentru studiu și pentru jocuri
Dacă de multe ori imprimați fotografii și sunteți deja obosit să schimbați cartușele în imprimantă, acordați atenție echipamentului MFP Epson L850. O mare varietate de consumabile, o calitate excelentă a tipăririlor, o gamă largă de funcționalități - acestea sunt doar câteva dintre avantajele acestui model