Struktureeritud päringikeele kasutamine Delfis

click fraud protection

SQL (Structured Query Language) on standardiseeritud keel relatsioonandmebaasis andmete määratlemiseks ja nendega manipuleerimiseks. Andmete relatsioonilise mudeli kohaselt tajutakse andmebaasi tabelikomplektina, seosed on mida tähistatakse väärtustega tabelites, ja andmed saadakse, täpsustades tulemustabeli, mille saab tuletada ühest või mitmest aluslauad. Päringud kuvatakse käsukeelena, mis võimaldab teil seda kasutada vali, sisesta, värskenda, leia välja andmete asukoha jne.

Delfis: TQuery

Kui kavatsete oma rakendustes kasutada SQL-i, saate selle väga hästi tuttavaks TQuery komponent. Delphi võimaldab teie rakendustel kasutada SQL-i süntaksit otse TQuery komponendi kaudu, et pääseda juurde andmetele Paradoxi ja dBase-i tabelitest (kasutades kohalikku SQL-i - ANSI standardse SQL alamhulk), andmebaasid kohalikus InterBase-serveris ja andmebaasid kaugandmebaasis serverid.
Delphi toetab ka heterogeenseid päringuid enam kui ühe serveri või tabeli tüübi kohta (näiteks andmed Oracle'i tabeli ja Paradoksi tabeli kohta) .TQuery'l on atribuut nimega

instagram viewer
SQL, mida kasutatakse SQL-lause salvestamiseks.

TQuery kapseldab ühe või mitu SQL-lauset, käivitab need ja pakub meetodeid, mille abil saame tulemusi manipuleerida. Päringud võib jagada kahte kategooriasse: need, mis tekitavad tulemuse (nt a VALI avaldus) ja need, mis seda ei tee (näiteks Uuendaminevõi INSERT avaldus). Kasutage TQuery. Avatud tulemuste komplekti tootva päringu täitmiseks; kasuta TQuery. ExecSQL päringute täitmiseks, mis ei anna tulemustasusid.

SQL-avaldused võivad olla mõlemad staatiline või dünaamilinest neid saab seadistada projekteerimise ajal või need võivad sisaldada parameetreid (TQuery. Parameetrid), mis varieeruvad töö ajal. Parameetriseeritud päringute kasutamine on väga paindlik, kuna saate jooksval ajal muuta kasutaja vaadet ja juurdepääsu andmetele lennult.

Kõik käivitatavad SQL-avaldused tuleb enne nende käivitamist ette valmistada. Ettevalmistuse tulemus on avalduse käivitatav või toimiv vorm. SQL-i väljavõtte koostamise meetod ja selle töövormi püsivus eristavad staatilist SQL-i dünaamilisest SQL-ist. Projekteerimise ajal koostatakse päring ja see täidetakse automaatselt, kui määrate päring komponendi aktiivne atribuut True. Käitamisajal koostatakse päring koos ettevalmistuskutsega ja see käivitatakse, kui rakendus kutsub komponendi Open- või ExecSQL-meetodeid.

TQuery võib tagastada kahte tüüpi tulemuskomplekte: "elada"nagu TT-komponendi puhul (kasutajad saavad andmeid redigeerida andmekontrollidega ja kui postituskõne ilmub, saadetakse muudatused andmebaasi)"Loe ainult"ainult kuvamiseks. Aktiivse tulemuste komplekti taotlemiseks seadke päringukomponendi atribuudiks RequestLive väärtuseks True ja arvestage, et SQL-avaldus peab vastama mõnedele erinõuetele (no ORDER BY, SUM, AVG jne)

Päring käitub paljuski sarnaselt tabelifiltriga ja mõnes mõttes on päring veelgi võimsam kui filter, kuna see võimaldab teil juurde pääseda:

  • rohkem kui üks tabel korraga ("liituge" SQL-is)
  • täpsustatud ridade ja veergude alamhulk selle aluseks olevast tabelist (tabelitest), selle asemel, et alati neid kõiki tagastada

Lihtne näide

Vaatame nüüd mõnda SQL-i toimimas. Ehkki selle näite jaoks võiksime SQL-i näidete loomiseks kasutada andmebaasivormi viisardit, teeme seda käsitsi, samm-sammult:

1. Asetage põhivormile TQuery, TDataSource, TDBGrid, TEdit ja TButton komponent.
2. Määrake TDataSource komponendi DataSet atribuudiks Query1.
3. Määrake TDBGrid komponendi andmeallika atribuut väärtuseks DataSource1.
4. Seadke TQuery komponendi DatabaseName atribuudiks DBDEMOS.
5. TQuery SQL-i atribuudi omistamiseks topeltklõpsake TQuery SQL-i atribuuti.
6. Ruudustiku kuvatavate andmete kuvamiseks projekteerimise ajal muutke TQuery komponendi aktiivne omadus väärtuseks Tõene.
Ruudustik kuvab tabeli Employee.db andmeid kolmes veerus (eesnimi, perekonnanimi, palk) isegi siis, kui Töötaja.db-l on 7 välja ja tulemikomplekt on piiratud nende kirjetega, kus algab eesnimi koos 'R' -ga.

7. Nüüd määrake Button1 OnClicki sündmusele järgmine kood.

protseduur TForm1.Button1Click (saatja: TObject); alustada
Päring1.Sulge;{sulge päring}// määrake uus SQL-i avaldis
Päring1.SQL.Clear; Päring1.SQL.Add ('Valige EmpNo, Eesnimi, Perekonnanimi'); Päring1.SQL.Add ('FROM Employee.db'); Päring1.SQL.Add ('WHERE Palk>' + Edit1.Text); Päring1.RequestLive: = tõene; Päring1.Ova; {avatud päring + kuvaandmed}lõpp;

8. Käivitage oma rakendus. Kui klõpsate nuppu (seni, kuni redigeerimisel 1 on kehtiv valuuta väärtus), kuvatakse ruudul Kõigi kirjete väljad EmpNo, Eesnimi ja Perekonnanimi, kus palk on suurem kui määratud valuuta väärtus.

Selles näites lõime lihtsa staatilise SQL-lause reaalajas tulemuste komplektiga (me pole kuvatud kirjeid muutnud) lihtsalt kuvamise eesmärkidel.

instagram story viewer