Strukturētas vaicājumu valodas lietošana Delphi

SQL (Structured Query Language) ir standartizēta valoda, lai definētu un apstrādātu datus relāciju datu bāzē. Saskaņā ar datu relācijas modeli datu bāze tiek uztverta kā tabulu kopums, attiecības ir ko attēlo vērtības tabulās, un dati tiek iegūti, precizējot rezultātu tabulu, kuru var iegūt no vienas vai vairākām pamatgaldi. Vaicājumi izpaužas kā komandu valoda, kas ļauj jums atlasīt, ievietot, atjaunināt, atrast datu atrašanās vietas noteikšana utt.

Delfos: TQuery

Ja jūs plānojat izmantot SQL savās lietojumprogrammās, jūs ļoti labi iepazīsities ar TQuery komponents. Delphi ļauj jūsu lietojumprogrammām tieši izmantot SQL sintakse, izmantojot TQuery komponentu, lai piekļūtu datiem no Paradox un dBase tabulām. (izmantojot vietējo SQL - ANSI standarta SQL apakškopa), datu bāzes uz lokālā InterBase servera un datu bāzes uz attālo datu bāzi serveriem.
Delphi atbalsta arī neviendabīgus vaicājumus pret vairāk nekā vienu servera vai tabulas tipu (piemēram, dati no Oracle tabulas un Paradox tabulas) .TQuery ir īpašums ar nosaukumu SQL, ko izmanto SQL paziņojuma glabāšanai.

instagram viewer

TQuery iekapsulē vienu vai vairākus SQL paziņojumus, tos izpilda un nodrošina metodes, ar kurām mēs varam manipulēt ar rezultātiem. Vaicājumus var iedalīt divās kategorijās: tie, kas rada rezultātu kopas (piemēram, a IZVĒLĒTIES paziņojumu), un tiem, kas to nedara (piemēram, ATJAUNINĀTvai IEVADIET paziņojums, apgalvojums). Izmantojiet TQuery. Atvērts, lai izpildītu vaicājumu, kas rada rezultātu kopu; izmantojiet TQuery. ExecSQL, lai izpildītu vaicājumus, kas nerada rezultātu kopas.

SQL paziņojumi var būt vai nu statisks vai dinamisks, tas ir, tos var iestatīt projektēšanas laikā vai iekļaut parametrus (TQuery. Params), kas mainās izpildes laikā. Parametrizētu vaicājumu izmantošana ir ļoti elastīga, jo izpildes laikā varat mainīt lietotāja skatījumu uz datiem un piekļuvi tiem, kas ir lidojuma laikā.

Visi izpildāmie SQL paziņojumi ir jāsagatavo, pirms tos var izpildīt. Sagatavošanas rezultāts ir paziņojuma izpildāma vai operatīva forma. SQL paziņojuma sagatavošanas metode un tā darbības formas noturība atšķir statisko SQL no dinamiskā SQL. Projektēšanas laikā vaicājums tiek sagatavots un izpildīts automātiski, kad iestatāt vaicājums komponenta aktīvais īpašums patiesībai. Izpildes laikā tiek sagatavots vaicājums ar aicinājumu sagatavoties un tiek izpildīts, kad lietojumprogramma izsauc komponenta Open vai ExecSQL metodes.

TQuery var atgriezt divu veidu rezultātu kopas: "tiešraide"tāpat kā ar lietojamo komponentu (lietotāji var rediģēt datus, izmantojot datu vadīklas, un, kad tiek izsaukts ziņojums, izmaiņas tiek nosūtītas datu bāzei)"tikai lasīt"tikai displeja nolūkiem. Lai pieprasītu tiešu rezultātu kopu, iestatiet vaicājuma komponenta rekvizītu RequestLive uz True un ņemiet vērā, ka SQL paziņojumam ir jāatbilst dažām īpašām prasībām (bez ORDER BY, SUM, AVG utt.)

Vaicājums daudzos veidos izturas tāpat kā tabulas filtrs, un dažos gadījumos vaicājums ir pat jaudīgāks nekā filtrs, jo tas ļauj piekļūt:

  • vairāk nekā viens galds vienlaicīgi (pievienojieties SQL)
  • noteiktu rindu un kolonnu apakškopu no pamatā esošās (-ām) tabulas (-ām), nevis vienmēr atdodot tās visas

Vienkāršs piemērs

Tagad redzēsim, kā darbojas daži SQL. Lai gan mēs varētu izmantot Datubāzes formu vedni, lai izveidotu dažus SQL piemērus šim piemēram, mēs to darīsim manuāli, soli pa solim:

1. Ievietojiet TQuery, TDataSource, TDBGrid, TEdit un TButton komponentu galvenajā formā.
2. Iestatiet TDataSource komponenta DataSet rekvizītu uz Query1.
3. Iestatiet TDBGrid komponenta DataSource īpašumu uz DataSource1.
4. Iestatiet TQuery komponenta DatabaseName rekvizītu uz DBDEMOS.
5. Veiciet dubultklikšķi uz TQuery SQL īpašuma, lai tam piešķirtu SQL.
6. Lai režģis parādītu datus projektēšanas laikā, mainiet TQuery komponenta aktīvo īpašumu uz True.
Režģī tiek parādīti tabulas Employee.db dati trīs kolonnās (Vārds, Uzvārds, Alga), pat ja Darbiniekam.db ir 7 lauki, un rezultātu komplekts ir ierobežots ar tiem ierakstiem, kur sākas vārds Pirmais vārds ar “R”.

7. Tagad Button1 OnClick notikumam piešķiriet šo kodu.

procedūra TForm1.Button1Click (Sūtītājs: TObject); sākt
Vaicājums1.Aizvērt;{aizveriet vaicājumu}// piešķirt jaunu SQL izteiksmi
Query1.SQL.Clear; Query1.SQL.Add ('Atlasīt EmpNo, FirstName, LastName'); Query1.SQL.Add ('FROM Employee.db'); Query1.SQL.Add ('WHERE alga>' + Edit1.Text); Query1.RequestLive: = taisnība; Vaicājums1.atvērts; {atvērt vaicājumu + parādīt datus}beigas;

8. Palaidiet savu programmu. Noklikšķinot uz pogas (ja vien 1. rediģēšanai ir derīga valūtas vērtība), režģī parādīsies Lauki EmpNo, FirstName un LastName visiem ierakstiem, kuru alga ir lielāka par norādīto valūtu vērtību.

Šajā piemērā mēs izveidojām vienkāršu statisku SQL paziņojumu ar reālu rezultātu kopu (mēs neesam mainījuši nevienu parādīto ierakstu) tikai attēlošanas nolūkiem.