linkedin facebook linkedin facebook nod32

Ma’lumotlar bazalariga ob’ektga-yo‘naltirilgan murojaat va ODBC

Muallif: Mengliyev Sh.

Qo`shilgan sana: 2015-08-21

Ma’lumotlar bazalariga ob’ektga-yo‘naltirilgan murojaat va ODBC

Agar siz MySQL uchun yaratilgan dasturni boshqa MBBT ga ko‘chirmoqchi bo‘lsangiz o‘z kodingizni shu yadro API  sidan foydalanadigan qilib qayta yozishingiz kerak.
Lekin dasturchilar boshqa ma’lumotlar bazasiga ko‘chirish muammosidan asosan xalos bo‘lganlar. Ularda yagona API, Open DataBase Connectivity API (ODBC), xamma SQL-ma’lumotlar bazalariga unifikatsiya qilingan interfeys mavjud.
ODBC xamma ma’lumotlar bazalariga yagona interfeys bo‘lgani uchun,  MySQL va boshqa MBBT lar bilan ishlovchi dasturlar yaratish uchun uni o‘rganib chiqish etarli. Agar siz kerakli tarzda ODBC dan foydalansangiz, siz yaratgan dasturlar ixtiyoriy MBBT bilan ishlay oladi.

ODBC xaqida tushuncha
Xamma API lar kabi ODBC birgalikda ma’lum funksiyalar to‘plamini ta’minlovchi sinflar va interfeyslar to‘plamidir. ODBC xolida bu funksiyalar ma’lumotlar bazasiga murojaatni ta’minlaydi. ODBC API ni tashkil qiluvchi sinflar va interfeyslar ixtiyoriy turdagi ma’lumotlar murojjat qilishdagi umumiy tushunchalar abstraksiyasidir. 
Masalan, Connection ma’lumotlar bazasi Bilan bog‘lanishni tasvirlovchi interfeysdir. SHunga o‘xshab ResultSet SQL SELECT komandasi qaytaruvchi natijaviy to‘plamni tasvirlaydi. Tabiiyki ma’lumotlar bazasiga murojaat konkret detallari uning yaratuvchisiga bog‘liq. ODBC bu detallar Bilan ishlamaydi.
ODBC sinflarini ma’lumotlar bazasini dasturlashga  ob’ektga-yo‘naltirilgan usullar nuqtai nazaridan ko‘rib chiqamiz.

Ma’lumotlar bazasiga ob’ektga-yo‘naltirilgan murojaat bibliotekasi rasm 1.

MBBT Bilan ishlashni uchta asosiy tushuncha tasvirlaydi: ulanish, natijaviy to‘plam va natijaviy to‘plam satrlari. 1-rasm bu ob’ektlarni UML-diagrammada ko‘rsatadi.
UML - bu yangi  Unifikatsiyalangan modellashtirish tili bo‘lib, sozdannыy Gradi Buch, Ayvar YAkobson va Djeyms Rambo (Grady Booch, Ivar Jacobson, James Rumbaugh) tomonidan ob’ektga-yo‘naltirilgan loyixalash va taxlilni xujjatlash YAngi standarti sifatida taklif qilingan.

Ma’lumotlar bazasiga ulanish
Ixtiyoriy muxitda ma’lumotlar bazasiga murojaat ulanishdan boshlanadi. Bizning ob’ektga-yo‘naltirilgan bibliotekamizni yaratish  Connection ob’ektini yaratishdan boshlanadi. Ob’ekt Connection server Bilan bog‘lanishni o‘rnatish, zarur ma’lumotlar bazasini tanlash, so‘rovlarni uzatish va natija olishni bilishi kerak.
Connection sinfi usullari xamma MBBT lar uchun bir xildir. Lekin sinf ichida, kompilyasiya qilinayotgan biblioteka uchun xos bo‘lgan yopiq a’zolar berkitilgandir. Bog‘lanish o‘rnatishda ma’lumotlar Bilan bog‘lanishni ta’minlaydigan sinf a’zodlari farqli bo‘lib qoladi.

Ma’lumotlar bazasi bilan ulanishni o‘rnatish
Bu  API yordamida yaratiladigan xamma amaliy dasturlarga ma’lumotlar bazasiga 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.

Ma’lumotlar bazasidan uzilish
Connection yana bir mantiqiy funksiyasi ma’lumotlar bazasi bilan aloqani uzish va dasturdan berkitilgan resurslarni ozod qilishdir. Bu funksiyani Close () usuli amalga oshiradi.

Ma’lumotlar bazasiga murojaatlarni bajarish
Bog‘lanishni ochish va yopish odatda ma’lumotlar bazasiga 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 xamda shu natijaviy to‘plam bilan bog‘liq meta ma’lumotlarga murojaatni ta’minlashi kerak. 2-5  rasmda ko‘rsatilgan ob’ektli modelga asosan bizning   Result sinfimiz natijaviy to‘plam satrlarinissikl bo‘yicha o‘qish va undagi satrlar sonini aniqlashni ta’minlaydi.

Natijalar bo‘yicha ko‘chish
Bizning  Result sinfimiz 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 bizning ob’ektli modelimizda 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 – parolьni ko‘rsatadi. Bizning C++ API bu indeklashni foydalanuvchi uchun do‘stona qiladi. GetField(1) yoki fields[0] birinchi maydonni qaytaradi.

876 marta o`qildi.

Parol:
Eslab qolish.


Ro`yhatdan o`tish

testing

+998915878681

Siz o`z maxsulotingizni 3D reklama ko`rinishda bo`lishini xohlaysizmi? Unda xamkorlik qilamiz.

3D Reklama


Рейтинг@Mail.ru
Рейтинг@Mail.ru

Besucherzahler
счетчик посещений