Trucuri de bază de lucru cu sql de la delphi - conectare la baza de date

Conectarea la baza de date

Când lucrați cu o bază de date, primul lucru pe care un program ar trebui să îl poată face este să se conecteze la baza de date. Prin această conexiune la baza de date, programul va trimite cereri și va primi rezultatele execuției.







Să presupunem că:
  1. Serverul bazei de date este deja selectat și îi cunoaștem numele.
  2. Tipul serverului selectat este acceptat de componentele de acces pe care le utilizați (în exemplu, se utilizează erDA).
  3. Baza de date a creat deja o conexiune cu aceasta deja verificată prin mijloacele standard ale serverului și totul funcționează.
  4. În Delphi, a fost deja creat un formular (sau DataModule), în care vom crea această conexiune.

Pentru a descrie tipul serverului și parametrii conexiunii, obiectul utilizează în mod obișnuit un nume de bază de date sau conexiune (în erDA, acesta este TerDataBase, în ADO este TADOConnection, în BDE este TDataBase). De obicei, este recomandat ca un astfel de obiect să fie creat pentru întreaga aplicație și toate lucrările ulterioare trec prin aceasta. În cazul BDE și ADO, puteți face acest lucru fără acest obiect, dar apoi este dificil să organizați un dialog frumos pentru a vă conecta, este dificil să faceți un buton de deconectare din baza de date. și este aproape imposibil să controlați numărul de conexiuni active (sesiuni) pe care programul le-a instalat în prezent cu serverul.

După crearea componentelor, este de dorit să-i dați un nume lizibil. Să o numim DB.

De obicei, la pornire, programul trebuie să ceară utilizatorului numele și parola pentru conectarea la baza de date. De asemenea, este de dorit să se ofere utilizatorului posibilitatea de a alege baza de date cu care va lucra. Această caracteristică este de obicei implementată în evenimente onLogin. Înainte de a conecta, sau altele, în funcție de componente, unde este afișat formularul de introducere a parolei, atunci datele primite sunt transferate la proprietățile componentei.







Datorită faptului că BDE și ADO creează automat conexiuni la baza de date atunci când este necesar, nu este necesară o altă configurație.

În Erda are posibilitatea de a controla numărul de sesiuni active, și apoi, prin ceea ce se cere un fel de conexiune. Pentru aceasta, se utilizează obiectul TerTransaction și sunt descrise metodele de lucru cu tranzacția. Datorită faptului că MSSQL nu permite să dețină mai deschise și nu „scos“ de cereri pe sesiune, în TerTransaction un mecanism care, atunci când deschiderea următoarei cererii sau se întrerupe sau dezumflă întreaga cerere anterioară clientului (tip de comportament poate fi selectat folosind Proprietățile FreeAction ale componentei TerTransaction).

De obicei, doar suficient pentru a pune TerTransaction pentru a forma împreună cu TerDataBase baze de date și pentru înregistrarea proprietății. Dacă nu doriți să obțineți un alt efect. Sunt de acord cu astfel de solicitări în 2 părți cereri 1st pentru directoarele mici și interogări 2-a, care se pot întoarce un număr mare de intrări. Pentru prima parte 1 de a crea o tranzacție pentru o secundă cu proprietatea FreeAction = erStopFetch. Rezultatul - în cazul în care un utilizator deschide o cerere „lungă“ 2, apoi trăgând doar prima oprire la locul unde a fost la deschiderea a 2-a cererii.

Faptul este că, dacă lăsați datele neîncărcate pe server - așa cum procedează BDE, atunci fiecare conexiune care nu este "extrasă" creează propria conexiune. În cazul în care utilizatorul a uitat să închidă această solicitare, el încă mai atârnă și ocupă resurse server, care nu sunt nelimitate. În mod implicit, în ADO, toate rezultatele interogării sunt trase imediat către client, dar acest lucru duce uneori la o așteptare lungă pentru ca procesul de cache să se termine.

În acest caz, fiecare cerere activă impune automat un număr de încuietori. Deși cu un număr mic de utilizatori nu este important, dar cu creșterea numărului de utilizatori cu acest lucru trebuie să fie luate în considerare. Din păcate, de obicei, atunci când vine vorba de acest lucru (după scrierea programului), nu este chiar ușor să rezolvăm această problemă. Mult mai ușor, atunci când sarcina programului cu un număr mare de clienți a fost inițial stabilită, și a luat imediat măsuri de reducere a numărului de încuietori.

Programul demo utilizează serverul de bază de date MSSQL numele serverului Test, baza de date TestDB.

Pentru a vă conecta la aceasta, trebuie să setați următoarele proprietăți TerDataBase:







Articole similare

Trimiteți-le prietenilor: