Кориштење структурираног језика упита у Делпхију

СКЛ (Струцтуред Куери Лангуаге) је стандардизовани језик за дефинисање и управљање подацима у релацијској бази података. У складу са релацијским моделом података, база података се доживљава као скуп табела, односи су представљени вриједностима у таблицама, а подаци се преузимају специфицирањем таблице резултата која се може извести из једне или више основне таблице. Упити имају облик наредбеног језика који вам омогућава одаберите, убаците, ажурирајте, пронађите локацију података и тако даље.

Ин Делпхи: ТКуери

Ако ћете користити СКЛ у својим апликацијама, постаћете врло познати са ТКуери саставни део. Делпхи омогућава вашим апликацијама да директно користе СКЛ синтаксу путем ТКуери компоненте за приступ подацима из парадок и дБасе табела (користећи локални СКЛ - подскуп АНСИ стандардног СКЛ-а), базе података на локалном интер-базном серверу и базе података на удаљеној бази података сервери.
Делпхи такође подржава хетерогене упите против више врста сервера или табеле (на пример, подаци из Орацле табеле и парадокс табеле). ТКуери има својство звано

instagram viewer
СКЛ, која се користи за чување СКЛ израза.

ТКуери инкапсулира једну или више СКЛ изјава, извршава их и пружа методе помоћу којих можемо манипулирати резултатима. Упити се могу поделити у две категорије: оне које производе скупове резултата (попут а ОДАБИР изјаву) и оне које то не чине (попут ан АЖУРИРАЊЕили ИНСЕРТ изјава). Користите ТКуери. Отворено за извршавање упита који производи скуп резултата; користите ТКуери. ЕкецСКЛ за извршавање упита који не производе скупове резултата.

СКЛ изјаве могу бити било које статички или динамичан, односно могу се подесити у време пројектовања или укључивати параметре (ТКуери. Парамс) које се разликују у току извођења. Кориштење параметризираних упита врло је флексибилно јер у току времена можете промијенити корисников поглед и приступ подацима у покрету.

Све извршне СКЛ изјаве морају бити припремљене пре него што се могу извршити. Резултат припреме је извршни или оперативни облик изјаве. Начин припреме СКЛ израза и трајност његовог оперативног облика разликују статички СКЛ од динамичког СКЛ-а. У време дизајна, упит се припрема и извршава аутоматски када поставите упит Активно својство компоненте је Труе. У време извођења, упит се припрема са позивом на Припрема и извршава се када апликација позива методе Опен или ЕкецСКЛ компоненте.

ТКуери може вратити две врсте резултата: "уживо"као што је случај са компонентом ТТабле (корисници могу да уређују податке помоћу контрола података, а када се догоди позив на Пост, измене се шаљу у базу података),"само за читање„само за приказ. Да бисте затражили скуп резултата уживо, поставите својство РекуестЛиве компоненте упита на Труе и будите свесни да СКЛ изјава мора испуњавати неке специфичне захтеве (без ОРДЕР БИ, СУМ, АВГ, итд.)

Упит се на многе начине понаша слично као таблични филтер, а на неки начин је упит чак и моћнији од филтра јер вам дозвољава приступ:

  • више таблица истовремено ("придружи се" у СКЛ-у)
  • одређени подскуп редова и ступаца из његове (их) табеле (таблица), а не да их увек враћа

Једноставан пример

Сада да видимо неки СКЛ у акцији. Иако бисмо могли да користимо чаробњака обрасца базе података да створимо неке примере СКЛ-а за овај пример, урадићемо то ручно, корак по корак:

1. Поставите ТКуери, ТДатаСоурце, ТДБГрид, ТЕдит и ТБуттон компоненту на главни образац.
2. Поставите својство ДатаСет компоненте ТДатаСоурце на Куери1.
3. Поставите својство ДатаСоурце компоненте ТДБГрид на ДатаСоурце1.
4. Поставите својство ДатабасеНаме компоненте ТКуери на ДБДЕМОС.
5. Двапут кликните на СКЛ својство ТКуери-а да бисте му додијелили СКЛ изјаву.
6. Да бисте приказали податке о мрежи на време пројектовања, промените активну својство компоненте ТКуери у Труе.
Мрежа приказује податке из таблице Емплоиее.дб у три ступца (ФирстНаме, ЛастНаме, Плата), чак и ако Емплоиее.дб има 7 поља, а скуп резултата ограничен је на оне записе где започиње ФирстНаме са 'Р'.

7. Сада доделите следећи код ОнЦлицк догађају дугмета1.

процедура ТФорм1.Буттон1Цлицк (Пошиљалац: ТОбјецт); започети
Куери1.Цлосе;{затвори упит}// додијелити нови СКЛ израз
Куери1.СКЛ.Цлеар; Куери1.СКЛ.Адд ('Изабери ЕмпНо, ФирстНаме, ЛастНаме'); Куери1.СКЛ.Адд ('ФРОМ Емплоиее.дб'); Куери1.СКЛ.Адд ('ГДЕ Плата>' + Едит1.Тект); Куери1.РекуестЛиве: = тачно; Куери1.Опен; {отворен упит + приказ података}крај;

8. Покрените апликацију. Када кликнете на дугме (све док Едит 1 у себи има важећу вредност валуте), решетка ће приказати Поља ЕмпНо, ФирстНаме и ЛастНаме за све записе у којима је зарада већа од наведене валуте вредност.

У овом примеру смо направили једноставну статичку СКЛ изјаву са сет резултата уживо (нисмо изменили ниједан од приказаних записа) само за потребе приказивања.

instagram story viewer