15-мавзу. Grafik va multimediya dasturlash tizimlarini qo’llash. Reja
Download 367.41 Kb. Pdf ko'rish
|
15-mavzu
- Bu sahifa navigatsiya:
- Table ning FilterOptions
Maydonlar bo yicha filtrlash
1. Formaga Button va Edit komponentalarini qo’ying 2. Button komponentasiga quyidagilar yoziladi Table1->Filtered = false; Table1->FilterOptions « foCaselnsensitive; Table1->Filter = "Familiya=' " + Editl->Text + ,, * ,n ; Table1->Filtered = true; 3. Table ning FilterOptions xususiyatining foCaselnsensitive xususiyati True qilinadi. Yoki Edit komponentasining Onchange hodisasiga quyidagilar yoziladi: Table1->Filtered = false; // Editl bo’sh bo’Isa funksiyadan chiqib ketiladi if (Editl->Text == "") return ; Table1->FilterOptions « foCaselnsensitive; Table1->Filter = "Familiya='" + Editl->Text Table1->Filtered = true; DIQQAT: Filterlashni bu turi faqat Paradox uchun o’rinli Maydonlarga quyidagicha murojaat qilish mumkin. Table1->FieldByName("Maydon_nomi")->Value; Table1->FieldByName("Narxi")->AsCurrency; Table1->FieldByName("Soni")->AsInteger; Maydonga biror qiymatni o’zlashtirish quyidagicha amalgam oshiriladi: Table1->Edit; // Jadvalni o’zgartirishga ruxsat berish Table1->FieldByName("Ism")->AsString = Editl->Text; Table1->Post(); // Saqlash Biror maydon yig’indisini hisoblash quyidagicha bo’lishligi mumkin. void fastcall T For ml::ButtonlClick(TObject *Sender) { float s; Tablel->First; while(!Tablel->Eof) { s += Tablel->FieldByName("Jami")->Value; Tablel->Next; // keyingi yozuvga o’tish } Buttonl->Caption = Float ToStr(s); SQL tili ( Structured Query Language - strukturalashgan so’rovlar tili) s int aksisi juda oson. SQL tilida katta - kichik harflar farqlanilmaydi. Ya’ni Select operatorini SELECT, Select, select shakllarida yozish mumkin. Agar bir nechta operatordan foydalanilsa operator oxirida qo’yiladi. Faqat bitta operator ishlatilsa operator oxirida qo’yish shart emas. Izoh yozish ba'zi sistemalarda / * shaklida, ba'zi sistemalarda esa { SQL so’rovlar tilidan deyarli barcha (MS SQL Server, MySQL, PostgreSQL, Oracle, Informix, Paradox, Interbase, FireBird) ma'lumotlar bazasida foydalanish mumkin. SQL so’rovlari ma'lumotlar bazasiga qarab qizman o’zgarishi mumkin. Select tanlash operatori Select operatorining umumiy ko’rinishi SELECT Cmaydon nomlari ro’yhati> FOR M WHERE GROUP BY HAVING ORDER BY Cmaydon nomlari ro’yhati>; Quyidagi maydonlarni o’zida saqlovchi namuna nomli jadval hosil qiling va uni Lesson aliasiga saqlang. 1. Bu jadvaldagi ma'lumotlarni ko’rish quyidagicha bo’ladi: SELECT * FROM namuna 2. Jadvaldagi ba'zi maydonlarni ko’rsh uchun shu maydon nomlari ro’yhati select dan keyin keltiriladi: SELECT Familiya, Ism, Otasi FROM namuna 3. Familiya bo’yisha tartiblash Select familiya, ism, otasi From namuna Order By Familiya, Ism 4. Tug’ilgan yili bo’yicha kamayib borish tartibida tartiblash Select familiya, ism, otasi,tug_yil FROM namuna Order By tug_yil DESC 5. Select operatoridan keyin faqat maydon nomi emas, ixtiyoriy arifmetik amal ( +, *, /) ishlatish mumkin. Misol uchun, yuqoridagi jadvaldagi tug’ilgan yilni joriy yildan ayirib, talabaning yoshini aniqlaymiz: Select familiya, ism, otasi, (2013-tug_yil) AS Yoshi FROM namuna 6. Agar maydon nomini ruscha shriftda chiqarish talab etilsa quyidagicha so’rov yoziladi: (Maydon nomidan keyin AS xizmatchi so’zi bilan maydon sarlavhasi keltirilladi. Faqat "YO" xarfida muammo bo’lishi mumkin) Select familiya AS Familiya, ism AS Imya FROM namuna 6.1. Familiya va Ism maydonlarini bitta ustunda chiqarish uchun quyidagicha yozish mumkin. Select familiya + ' ' + ism AS "Familiya Imya" FROM namuna MySQL da yuqoridagi so’rov sal boshqacha amalga oshiriladi. Where operatoridan keyin tanlash shartida mantiqiy amallar AND, OR, NOT, arifmetik amallar va munosabat amallari: 7. Dastlabki 6 ta amal tushunarli. Misol uchun jinsi ayol bo’lgan, 1990 yildan keyin tug’ilganlar ro’yhatini chiqaramiz. Select Familiya, Ism, Otasi, tug_yil, (2013-tug_yil) AS yoshi FROM namuna Where jinsi= ,, Ayol" and tug_yil>1990 8. Like amali s int aksisi quyidagicha: Bu amal satrli maydonlar uchun qo’llaniladi va izlanayongan ma'lumot topilsa true qiymat qaytaradi. Belgilar ketma - ketligini to’liq kiritish yoki !, %” belgisi bilan tugatish mumkin. Bu belgi ixtiyoriy belgilar ketma - ketligini bildiradi. Misol: Select familiya, ism, otasi FROM namuna Where Familiya LIKE "A%" Amali !, A" harfidan boshlanuvchi barcha familiyalarni bildiradi. (Adambaev, Abdurahimov, Alimov, Azamov, Asqarov, Azizov,...) Select familiya, ism, otasi FROM namuna Where Familiya LIKE "Abdu%" Amali !, Abdu" harflaridan boshlanuvchi barcha familiyalarni bildiradi. (Abdurahimov, Abdug’aniev, Abduqayyumov, Abdullaev) Select familiya, ism, otasi FROM namuna Where Ism LIKE "%im%" Amali ketma - ketlikda “inf qismi bor bo’lgan ismlarni bildiradi. (Karimboy, Abdukarim, Rahimjon, Hakimboy, Salimjon,...) 9. between ... and amali s int aksisi quyidagicha: 1985 va 1990 yillar oralig’ida tug’ilganlar ro’yhatini chiqarish Select familiya, ism, otasi FROM namuna WHERE tug_yil BETWEEN 1985 AND 1990 10. IN amali s int aksisi quyidagicha: Maydondagi ma'lumot qiymati, to’plam elementlariga tegishli bo’lganlarini chiqarib beradi. Masalan, ismi Azamat, Qudrat va Ne'mat bo’lgan talabalar haqidagi ma'lumotlarni chiqarish talab etilsin: SELECT * FROM namuna WHERE Ism IN ("Azamat","Qudrat","Ne'mat") Tug’ilgan yili 1980,1982,1989 bo’lganlar ro’yxati esa quyidagicha: SELECT familiya, ism, otasi, tug_yil FROM namuna WHERE tug_yil IN (1980,1982, 1989) 11. DISTINCT xizmatchi so’zi ko’rsatilgan maydon bo’yicha bir xil qiymatli ma'lumotlardan faqat bittasini olishni bildiradi SELECT DISTINCT familiya FROM namuna 12. Count ko’rsatilgan maydon bo’yicha, yoki butun jadvaldagi yozuvlar sonini aniqlash uchun ishlatiladi Select count (*) FROM namuna 95-99 guruhidagi talabalar sonini aniqlash: Select count (*) as soni FROM namuna WHERE guruh="95-99" 13. min( funksiyalari mos ravishda maydonning eng kichik qiymatini (min), eng katta qiymatini (max), o’rtacha qiymatini (avg) va yig’indisini (sum) aniqlaydi. Select min(tug_yil), max(tug_yil), avg(2010-tug_yil) FROM namuna 14. Quyida yoshi eng katta bo’lgan talabani aniqlovchi so’rov keltirilgan Select familiya, ism, tug_yil FROM namuna WHERE tug_yil=(select min(tug_yil) FROM namuna) 15. Guruhgagi talabalar sonini aniqlovchi so’rov Select guruh, count(guruh) as soni From namuna Group by guruh 16. Having bo’limi, group by bo’limi bo’lgan xollarda ishlatiladi. Having ning ishlatilishi deyarli Where bilan bir hil. Faqat having bo’limidagi so’rov butun jadvallarga emas, where bo’limi orqali olingan natijaga yoziladi. Quyida birdan ortiq takrorlanuvchi familiyalar va ularning takrorlanishlar sonini chiqaruvchi so’rov keltirilgan. select familiya, count(familiya) as soni from namuna group by familiya having count(familiya) >= 2 Jadvalga yangi yozuvqo’shish INSERT operatori orqali amalga oshiriladi INSERT INTO cjadval nomi> (Cmaydonlar ro 4 yhati>) VALUES (< qiymatlar ro’yhati>) Namuna: INSERT INTO namuna (familiya, ism) VALUES ("Abdurahimov", "Ne’mat") Mavjud yozuvni tahrirlash (qiymatini yangilash) Update operatori orqali amalga oshiriladi: UPDATE cjadval nomi> SET WHERE Namuna: Abdurahimov Ne'matning tug’ilgan yilini 1989 ga o’zgartirish Update namuna SET tug_yil=1989 WHERE familiya= ,, Abdurahimov" AND ism="Ne'mat" Yozuvni o’chirish quyidagicha amalga oshiriladi: DELETE FROM WHERE DELETE FROM namuna WHERE familiya="Abdurahimov" Bu so’rov orqali, familiyasi "Abdurahimov" bo’lgan barcha ma'lumotlar o’chiriladi. Yuqorida keltirilgan so’rovlarni C++Builder da qo’llanilishini ko’rib chiqamiz. 1 File -» New~> Application tanlanadi; 2. Komponentalarning BDE bo’limidan Queryl komponentasi formaga qo’yiladi; 3. Queryl komponentasining DatabaseName hususiyatida Alias ko’rsatiladi. (yani Lesson); 4. Queryl komponentasining SQL hususiyatiga quyidagilar kiritiladi: select * from namuna 5. Queryl komponentasining Active hususiyati true ga o’zgartiriladi; 6. Komponentalarning Data Access bo’limidan DataSource komponentasi formaga qo’yiladi; 7. DataSet hususiyati Queryl qilinadi; 8. Komponentalarning Data Controls bo’limidan DBNavigator komponentasi formaga qo’yiladi; 9. DataSource hususiyati DataSourcel qilinadi; 10. Komponentalarning Data Controls bo’limidan DBGrid komponentasi formaga qo’yiladi; 11. DataSource hususiyati DataSourcel qilinadi; 12. Formaga Label, Edit va Button komponentalari qo’yiladi. Button komponentasiga quyidagilar kiritiladi: Queryl->Close; Queryl->SQL->Clear() ; Queryl->SQL->Add("Select * from namuna"); Queryl->SQL->Add("Where Familiya=\""+Editl.Text+"\""); Queryl->Open(); Bu erda faqat tayyor jadval bilan ulanishni ko’rib chiqamiz. Shuning uchun oldin video ma'ruzani ko’rib chiqing. C++Builderda Microsoft Accessga ulanish uchun ADO texnologiyasidan foydalanamiz. Buning uchun siz quyidagilarni ketma - ket bajaring: 1. C++Builderning komponentalar palitrasidan ADO bo’limini tanlang. 2. Formaga ADOConnectionl va ADOTablel komponentalarini qo’ying. 3. ADOConnectionl ning ConnectionString hususiyati tanlanadi 4. Build tugmasi bosiladi |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling