15-Laboratoriya mashg`uloti


Download 0.68 Mb.
bet3/7
Sana14.12.2022
Hajmi0.68 Mb.
#1003303
1   2   3   4   5   6   7
Bog'liq
4-Laboratoriya

2. ODBC texnologiyasi


Hamma API lar kabi ODBC birgalikda ma`lum funksiyalar to`plamini ta`minlovchi sinflar va interfeyslar to`plamidir.
ODBC arxitekturasi to`rtta komponentdan iborat:

  1. Application – SQL so`rovlarini yuborish va natijalar olish uchun ODBC funksiyalarini chaqiradi va qayta ishlaydi;

  2. ODBC Driver – ilova nomidan drayverni yuklaydi va bajaradi;

  3. Driver Manager – ODBC funksiyalarini chaqirishni boshqaradi, SQL so`rovlarini aniq MBga yuboradi va natijalarni ilovaga qaytaradi. Agar lozim bo`lsa, bog`langan MBBT tomonidan qo`llab-quvvatlanadigan sintaksisga mos keladigan qilib ilova so`rov kodini o`zgartiradi;

  4. Data Source – ma`lumot manbasi, bunda foydalanuvchi kirishi lozim MBBT, tarmoq platformasi va unga bog`liq operatsion tizim.


ODBC funksiyalari MBga murojaatni ta`minlaydi. ODBC API ni tashkil qiluvchi sinflar va interfeyslar ixtiyoriy turdagi ma`lumotlar murojaat qilishdagi umumiy tushunchalar abstraktsiyasidir. Masalan, Connection MB bilan bog`lanishni tasvirlovchi interfeysdir. Shunga o`xshab Result Set SQL SELECT buyruqi qaytaruvchi natijaviy to`plamni tasvirlaydi. Tabiiyki MBga murojaat konkret detallari uning yaratuvchisiga bog`liq. ODBC bu detallar bilan ishlamaydi. ODBC sinflarini MBni dasturlashga ob`ektga-yo`naltirilgan usullar nuqtai nazaridan ko`rib chiqiladi.

25. MBga ob`ektga-yo`naltirilgan murojaat bibliotekasi
MBBT bilan ishlashni uchta asosiy tushuncha tasvirlaydi: ulanish, natijaviy to`plam va natijaviy to`plam satrlari. 25 rasm bu ob`ektlarni UML-diagrammada ko`rsatadi. UML-bu yangi Unifikatsiyalangan Modellashtirish Tili bo`lib, Grady Booch, Ivar Jacobson, James Rumbaugh tomonidan ob`ektga-yo`naltirilgan loyihalash va taxlilni xujjatlash yangi standarti sifatida taklif qilingan.
MBga ulanish. Ixtiyoriy muhitda MBa murojaat ulanishdan boshlanadi. Bizning ob`ektga­ yo`naltirilgan biblioteka yaratish Connection ob`ektini yaratishdan boshlanadi. Ob`ekt Connection server bilan bog`lanishni o`rnatish, zarur MBni tanlash, so`rovlarni uzatish va natija olishni bilishi kerak. Connection sinfi usullari hamma MBBT uchun bir xildir. Lekin sinf ichida, kompilyatsiya qilinayotgan biblioteka uchun xos bo`lgan yopiq qismlar yashiringandir. Bog`lanishni o`rnatishda ma`lumotlar bilan bog`lanishni ta`minlaydigan sinf qismlari farqli bo`lib qoladi.
MB bilan ulanishni o`rnatish. Bu API yordamida yaratiladigan hamma amaliy dasturlarga MBga ulanish uchun Connection sinfi nusxasini uning konstruktorlaridan biri yordamida yaratish kerak bo`ladi. U kabi uzilish uchun Amaliy dastur Connection nusxasini o`chirishi kerak. U to`g`ridan to`g`ri Close() va Sonnect() usullariga murojaat qilib Connection nusxasini qaytadan ishlatishi mumkin.
MBdan uzilish. Connection yana bir mantiqiy funksiyasi MB bilan aloqani uzish va dasturdan berkitilgan resurslarni ozod qilishdir. Bu funksiyani Close() usuli amalga oshiradi.
MBga murojaatlarni bajarish. Bog`lanishni ochish va yopish odatda MBga komandalar yuboriladi. Connection sinfi argument sifatida SQL komanda oluvchi Query() usuli yordamida bajaradi. Agar komanda so`rov bo`lsa 2-5.rasmda ko`rsatilgan ob`ekt modelidan Result sinfi nusxasini qaytaradi. Agar komanda ma`lumotlarni yangilayotgan bo`lsa, usul NULL qaytaradi va affected_rows qiymatini o`zgartirilgan satrlar soniga teng qiladi.
Natijaviy to`plamlar. Result sinfi natijaviy to`plam ma`lumotlariga hamda shu natijaviy to`plam bilan bog`liq metama`lumotlarga murojaatni ta`minlashi kerak. 2-5 rasmda ko`rsatilgan ob`ektli modelga asosan bizning Result sinfimiz natijaviy to`plam satrlarini tsikl bo`yicha o`qish va undagi satrlar sonini aniqlashni ta`minlaydi.
Natijalar bo`yicha ko`chish. Result sinfi natijaviy to`plam bilan qatorma qator ishlaydi. Result sinfi nusxasini Query() usuli yordamida olgandan so`ng amaliy dastur to navbatdagi Next() usuli 0 qaytarmaguncha, ketma ket Next() va GetCurrentRow() usullarini chaqirishi lozim.
Satrlar. Natijaviy to`plamning aloxida satri ob`ektli modelda Row sinfi bilan tasvirlanadi. Ma`lumotlarga murojaat massiv indeksi bo`yicha so`rov tomonidan berilgan tartibda amalga oshiriladi. Masalan, SELECT user_id, password FROM users so`rov uchun indeks 0 foydalanuvchi nomini va indeks 1 parolni ko`rsatadi. C++ API bu indeklashni foydalanuvchi uchun xamkorlik qiladi. GetField(1) yoki fields[0] birinchi maydonni qaytaradi.



Download 0.68 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




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