Dastur matni:
Unit school2_
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms,
Dialogs,Orids, DBGrids, Db,
DBTables, ExtCtrls, DBCtrls, StdCtrls;
Type
TForml = class(TForm)
Tablel: TTable; / / T a6jiH ua ( bch 6 a3 a jiaHHbix)
Queryl: TQuery; / / 3anpoc (3anncH B/l, y/ioB jieTB opaiom H e
KpHTepHIO B bioopa)
DataSourcel: TDataSource; / / h c to m h h k jiaH H b ix — T a6jin u a
h jih 3anpoc
DBGridl: TDBGrid; / / T a6j in u a juin 0T06p a * e H H a B/1 h jih
pe3yjibTaTa BbinojiHeHHH
DBNavigatorl: TDBNavigator
DBTextl: TDBText
Buttonl: TButton; / / KHonKa 3anpoc
Button2: TButton; / / KHonKa Bce 3anncn
procedure ButtonlClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
257
private
{ Private declarations }
public
{ Public declarations }
end;
Var
Forml: TForml;
implementation
{$R *.DFM}
/ / mejiMOKHa KHonKe 3anpoc
procedure TForml.ButtonlClick(Sender: TObject);
Var
fam: string[30];
begin
fam:=InputBox('BM6opKa nHtJjopiwaunn H3 B/l'
yKajKHTe (JjaMHjiHK) h mejiKHHTe Ha OK')
if fam <> S " / / nojn>30BaTejii> BBen (JiaMHJiHio
then
begin
w ith form l. Q ueryl do begin
Close; / / 3aKpBiT (Jtaitri-pesyjiBTaT BBinojiBHeHHa npezibiziymero
3anpoca
SQ L.Clear; / / yn,ajiHT TeKCT npeziHziymero 3anpoca
/ / 3anncBiBaeM hobbih 3anpoc c cbohctbo SQL
SQ L.A dd(' SELEC T Fam , N am e, C lass');
SQ L .A dd('F R O M ' :IIlKOJia:school.db''') ;
SQL.A dd('W H E R E ');
SQ L .A dd('(F am = " + fam + '")');
SQ L.A dd(«O R D ER BY N am e, F am ');
O pen; / / aKTHBH3HpyeM BBinojiHeHHe 3anpoca
end;
{ *** zipyroii BapnaHT H3\ieHeHHfi KpHTepna 3anpoca
begin
Q ueryLClose;
Q u ery l.S Q L [3 ]:= '(F am = '''+ fam + " ')';
Q ueryLO pen;
D ataS ourcel.D ataS et:= Q ueryl;
end;
}
if Q ueryL R ecordC ount < > 0 then
258
DataSourcel.DataSet:=Queryl // 0T06pa3HTpe3-T BtmojiHeHHa
3anpoca
else begin
ShowMessaoe(' B HeT3annceH, yn,OBJieTBopaioiiiHXKpHTepnio
3anpoca.');
DataSourcel .DataSet:=Tablel;
end;
end;
end;
// mejiMOK Ha KHonKe Bce 3anncH
procedure TForml.Button2Click(Sender: TObject);
begin
DataSourcel.DataSet:=Tablel; // hctom h hk ziaHHbix —TaSjinna
end;
/ / aKTHBH3aHHfI (JlOpMBI
procedure TForml.FormActivate(Sender: TObject);
begin
DataSourcel.DataSet := Tablel;
Tablel.Active := True;
end;
end.
TFormLButtonlClick protsedurasi so‘rov tugmasi bosilganda
bajariladi. U foydalanuvchidan qator (familiya) qabul qilib, SQL
xossasiga yozish orqali so‘rov matnini hosil qiladi. S‘ongra bu
protsedura Open usulini chaqirish bilan so‘rovni bajarilishini
aktivlashtiradi.
TForml.Button2Click protsedurasi hamma yozuvlar tugmasini
bosish orqali chaqirilib, DataSourcel komponentasini Tablel
komponentasibilan boglaydi vabutun bazani ko‘rish rejimiga o‘tishni
ta’minlaydi.
Agar so‘rov SQL xossasiga formani yaratish jarayonida yozilgan
bo‘lsa. dastur bajarilish jarayonida so‘rov shartini so‘rov matniga
mos 5 qatorini almashtirish yo‘li bilan o‘zgartirish mumkin.
Masalan:
Shuni e’tiborga olish lozimki, SQL xossasi TStrings tipidagi
tuzilma bolib. qatorlar nomerlari noldan boshlanadi.
Dostları ilə paylaş: |