Основы (асослар)


Атрибутларга мурожаат қилиш



Download 0,95 Mb.
bet51/58
Sana10.07.2022
Hajmi0,95 Mb.
#771988
1   ...   47   48   49   50   51   52   53   54   ...   58
Bog'liq
PL-SQL Маъруза матни (2)

Атрибутларга мурожаат қилиш


Сиз атрибутга фақат унинг номи орқали (объект туридаги жойлашган жойи орқали эмас) мурожаат қилишингиз мумкин. Қуйидаги мисолда den атрибути қийматини denominator ўзгарувчига берилади. Сўнг numerator ўзгарувчидаги қиймат num Атрибутига берилади:
DECLARE
r Rational := Rational(NULL, NULL);
numerator INTEGER;
denominator INTEGER;
BEGIN
...
denominator := r.den;
r.num := numerator;

Ичма-ич жойлашган объект туридаги атрибутларга кириш имконияти мавжуд:


CREATE TYPE Address AS OBJECT (
street VARCHAR2(30),
city VARCHAR2(20),
state CHAR(2),
zip_code VARCHAR2(5)
);

CREATE TYPE Student AS OBJECT (


name VARCHAR2(20),
home_address Address,
phone_number VARCHAR2(10),
status VARCAHR2(10),
advisor_name VARCHAR2(20),
...
);'

Агар s Student кўринишдаги объект бўлса, унинг zip_code атрибутига қуйидагича мурожаат қилишингиз мумкин:


s.home_address.zip_code

Конструкторни чақириш


Функциялар каби конструктор ифоданинг ихтиёрий жойида чақирилиши мумкин:
DECLARE
r1 Rational := Rational(2, 3);
FUNCTION average (x Rational, y Rational) RETURN Rational IS
BEGIN
...
END;
BEGIN
r1 := average(Rational(3, 4), Rational(7, 11));
IF (Rational(5, 8) > r1) THEN
...
END IF;
END;

Агар конструкторга параметр узатсангиз, мос атрибутларга (n-чи параметр n-чи атрибутга қиймат узатади) бошланғич қиймат берилади:


DECLARE
r Rational;
BEGIN
r := Rational(5, 6); -- num 5, den 6 бўлади
-- now r is 5/6

Атрибутга номи бўйича ҳам қиймат бериш мумкин:


BEGIN
r := Rational(den => 6, num => 5); --

Методларни чақириш


Пакетлаштирилган қисмдастурлари каби методлар нуқта белигисидан фойдаланиб чақирилади. Қуйидаги мисолда, normalize методи чақирилади:
DECLARE
r Rational;
BEGIN
r := Rational(6, 8);
r.normalize;
DBMS_OUTPUT.PUT_LINE(r.num); -- prints 3

Қуйидаги мисол кўрсатадики методларни занжирсимон тарзда кетма-кет чақириш мумкин. Улар чапдан ўнгга қараб бажарилади. Аввал reciprocal member функцияси чақирилади, сўнг эса normalize member процедураси чақирилади.


DECLARE
r Rational := Rational(6, 8);
BEGIN
r.reciprocal().normalize;
DBMS_OUTPUT.PUT_LINE(r.num); -- prints 4

SQL жумлаларида параметрсиз методларни чақирсангиз, бўш параметрлар рўйхати талаб қилинади.


Методларни занжирсимон шаклдаги чақиришда процедурадан кейин методни чақириш тақиқ қилинади, чунки процедура ифоданинг қисми сифатида эмас, балки жумла тарзида чақирилади. Масалан қуйидаги мурожаат нотўғри бўлади:
r.normalize().reciprocal; -- нотўғри

Яна шуни та`кидлаш жоизки, агар сиз иккита функцияни кетма-кет занжирсимон тарзда чақирсангиз, биринчи функция иккинчи функция қабул қилиши мумкин бўлган қийматни қайтариши лозим.



Download 0,95 Mb.

Do'stlaringiz bilan baham:
1   ...   47   48   49   50   51   52   53   54   ...   58




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish