ADO Recordset
Recordset obyekti
ADO Recordset obyekti ma’lumotlar bazasi jadvalidan olingan yozuvlar to‘plamini saqlash uchun ishlatiladi. Recordset obyekti yozuvlar va ustunlardan (maydonlardan) iborat.
ADO’da bu obyekt eng muhimi hisoblanadi va ma’lumotlar bazasidagi ma’lumotlarni boshqarish uchun eng ko‘p ishlatiladi.
ProgID
set objRecordset=Server.CreateObject("ADODB.recordset")
Recordset’ni birinchi marta ochganingizda joriy yozuv ko‘rsatkichi birinchi yozuvni ko‘rsatadi, BOF va EOF xususiyatlari esa False bo‘ladi. Agar yozuvlar bo‘lmasa, BOF va EOF xususiyatlari True bo‘ladi.
Recordset obyektlari yangilashning ikki turini qo‘llab-quvvatlashi mumkin:
- Darhol yangilash (immediate updating) - Update metodi chaqirilishi bilanoq barcha o‘zgarishlar darhol ma’lumotlar bazasiga yoziladi.
- Paketli yangilash (batch updating) - provayder bir nechta o‘zgarishni keshlaydi, so‘ngra ularni UpdateBatch metodi orqali ma’lumotlar bazasiga yuboradi.
ADO’da 4 xil kursor turi aniqlangan:
- Dinamik kursor (dynamic cursor) - Boshqa foydalanuvchilar tomonidan qo‘shilgan, o‘zgartirilgan va o‘chirilgan yozuvlarni ko‘rish imkonini beradi.
- Kalitlar to‘plami kursori (keyset cursor) - Dinamik kursorga o‘xshaydi, faqat boshqa foydalanuvchilar qo‘shgan yozuvlarni ko‘ra olmaysiz va u boshqa foydalanuvchilar o‘chirgan yozuvlarga kirishni to‘sadi. Boshqa foydalanuvchilar kiritgan ma’lumot o‘zgarishlari esa ko‘rinib turaveradi.
- Statik kursor (static cursor) - Ma’lumotlarni qidirish yoki hisobotlar tayyorlashda foydalanish uchun Recordset’ning statik nusxasini taqdim etadi. Boshqa foydalanuvchilar tomonidan qo‘shilgan, o‘zgartirilgan yoki o‘chirilgan yozuvlar ko‘rinmaydi. Mijoz tomonidagi (client-side) Recordset obyektini ochganda faqat shu turdagi kursorga ruxsat beriladi.
- Faqat oldinga harakatlanuvchi kursor (forward-only cursor) - Recordset bo‘ylab faqat oldinga qarab harakatlanish imkonini beradi. Boshqa foydalanuvchilar tomonidan qo‘shilgan, o‘zgartirilgan yoki o‘chirilgan yozuvlar ko‘rinmaydi.
Kursor turini CursorType xususiyati yoki Open metodidagi CursorType parametri orqali o‘rnatish mumkin.
Eslatma: Hamma provayderlar ham Recordset obyektining barcha metod va xususiyatlarini qo‘llab-quvvatlamaydi.
Xususiyatlar
| Xususiyat | Tavsif |
|---|---|
| AbsolutePage | Recordset obyektidagi sahifa raqamini belgilovchi qiymatni o‘rnatadi yoki qaytaradi |
| AbsolutePosition | Recordset obyektidagi joriy yozuvning tartib raqamini belgilovchi qiymatni o‘rnatadi yoki qaytaradi |
| ActiveCommand | Recordset bilan bog‘langan Command obyektini qaytaradi |
| ActiveConnection | Ulanish yopiq bo‘lsa, ulanish ta’rifini, ochiq bo‘lsa, joriy Connection obyektini o‘rnatadi yoki qaytaradi |
| BOF | Joriy yozuv o‘rni birinchi yozuvdan oldin bo‘lsa true, aks holda false qaytaradi |
| Bookmark | Xatcho‘pni (bookmark) o‘rnatadi yoki qaytaradi. Xatcho‘p joriy yozuvning o‘rnini saqlaydi |
| CacheSize | Keshlanishi mumkin bo‘lgan yozuvlar sonini o‘rnatadi yoki qaytaradi |
| CursorLocation | Kursor xizmatining joylashuvini o‘rnatadi yoki qaytaradi |
| CursorType | Recordset obyektining kursor turini o‘rnatadi yoki qaytaradi |
| DataMember | DataSource xususiyati havola qilgan obyektdan olinadigan ma’lumot a’zosining (data member) nomini o‘rnatadi yoki qaytaradi |
| DataSource | Recordset obyekti sifatida taqdim etiladigan ma’lumotlarni o‘z ichiga olgan obyektni belgilaydi |
| EditMode | Joriy yozuvning tahrirlash holatini qaytaradi |
| EOF | Joriy yozuv o‘rni oxirgi yozuvdan keyin bo‘lsa true, aks holda false qaytaradi |
| Filter | Recordset obyektidagi ma’lumotlar uchun filtrni o‘rnatadi yoki qaytaradi |
| Index | Recordset obyekti uchun joriy indeks nomini o‘rnatadi yoki qaytaradi |
| LockType | Recordset’dagi yozuvni tahrirlashda qulflash (locking) turini belgilovchi qiymatni o‘rnatadi yoki qaytaradi |
| MarshalOptions | Serverga qaysi yozuvlar qaytarilishini belgilovchi qiymatni o‘rnatadi yoki qaytaradi |
| MaxRecords | So‘rovdan Recordset obyektiga qaytariladigan yozuvlarning maksimal sonini o‘rnatadi yoki qaytaradi |
| PageCount | Recordset obyektidagi ma’lumotli sahifalar sonini qaytaradi |
| PageSize | Recordset obyektining bitta sahifasida ruxsat etilgan yozuvlarning maksimal sonini o‘rnatadi yoki qaytaradi |
| RecordCount | Recordset obyektidagi yozuvlar sonini qaytaradi |
| Sort | Recordset’ni saralashda ishlatiladigan maydon nomlarini o‘rnatadi yoki qaytaradi |
| Source | String qiymatni yoki Command obyektiga havolani o‘rnatadi yoxud Recordset obyektining ma’lumotlar manbaini ko‘rsatuvchi String qiymatni qaytaradi |
| State | Recordset obyekti ochiq, yopiq, ulanmoqda, bajarilmoqda yoki ma’lumot olmoqda ekanini tavsiflovchi qiymatni qaytaradi |
| Status | Paketli yangilashlar yoki boshqa ommaviy amallarga nisbatan joriy yozuvning holatini qaytaradi |
| StayInSync | Ota (parent) yozuv o‘rni o‘zgarganda bola (child) yozuvlarga havola ham o‘zgarishi yoki o‘zgarmasligini o‘rnatadi yoki qaytaradi |
Metodlar
| Metod | Tavsif |
|---|---|
| AddNew | Yangi yozuv yaratadi |
| Cancel | Bajarilishni bekor qiladi |
| CancelBatch | Paketli yangilashni bekor qiladi |
| CancelUpdate | Recordset obyekti yozuviga kiritilgan o‘zgarishlarni bekor qiladi |
| Clone | Mavjud Recordset’ning dublikatini yaratadi |
| Close | Recordset’ni yopadi |
| CompareBookmarks | Ikki xatcho‘pni (bookmark) solishtiradi |
| Delete | Yozuvni yoki yozuvlar guruhini o‘chiradi |
| Find | Recordset’da belgilangan mezonga mos keladigan yozuvni qidiradi |
| GetRows | Recordset obyektidagi bir nechta yozuvni ikki o‘lchamli massivga nusxalaydi |
| GetString | Recordset’ni string sifatida qaytaradi |
| Move | Recordset obyektidagi yozuv ko‘rsatkichini siljitadi |
| MoveFirst | Yozuv ko‘rsatkichini birinchi yozuvga siljitadi |
| MoveLast | Yozuv ko‘rsatkichini oxirgi yozuvga siljitadi |
| MoveNext | Yozuv ko‘rsatkichini keyingi yozuvga siljitadi |
| MovePrevious | Yozuv ko‘rsatkichini oldingi yozuvga siljitadi |
| NextRecordset | Joriy Recordset obyektini tozalaydi va buyruqlar ketma-ketligi bo‘ylab o‘tib, keyingi Recordset obyektini qaytaradi |
| Open | Jadvaldagi yozuvlarga, so‘rov natijalariga yoki saqlangan Recordset’ga kirish imkonini beruvchi ma’lumotlar bazasi elementini ochadi |
| Requery | Dastlabki Recordset’ni hosil qilgan so‘rovni qayta bajarib, Recordset’dagi ma’lumotlarni yangilaydi |
| Resync | Joriy Recordset’dagi ma’lumotlarni asl ma’lumotlar bazasidan yangilaydi |
| Save | Recordset obyektini faylga yoki Stream obyektiga saqlaydi |
| Seek | Belgilangan qiymatlarga mos yozuvni topish uchun Recordset indeksida qidiradi |
| Supports | Recordset obyekti muayyan turdagi funksionallikni qo‘llab-quvvatlashi yoki qo‘llab-quvvatlamasligini bildiruvchi boolean qiymat qaytaradi |
| Update | Recordset obyektidagi bitta yozuvga kiritilgan barcha o‘zgarishlarni saqlaydi |
| UpdateBatch | Recordset’dagi barcha o‘zgarishlarni ma’lumotlar bazasiga saqlaydi. Paketli yangilash rejimida ishlaganda qo‘llaniladi |
Hodisalar
Eslatma: Hodisalarni VBScript yoki JScript yordamida qayta ishlab bo‘lmaydi (hodisalarni faqat Visual Basic, Visual C++ va Visual J++ tillari qayta ishlay oladi).
| Hodisa | Tavsif |
|---|---|
| EndOfRecordset | Oxirgi yozuvdan keyingi yozuvga o‘tishga harakat qilganingizda ishga tushadi |
| FetchComplete | Asinxron amaldagi barcha yozuvlar olib bo‘lingandan keyin ishga tushadi |
| FetchProgress | Asinxron amal davomida yana nechta yozuv olinganini bildirish uchun vaqti-vaqti bilan ishga tushadi |
| FieldChangeComplete | Field obyektining qiymati o‘zgargandan keyin ishga tushadi |
| MoveComplete | Recordset’dagi joriy o‘rin o‘zgargandan keyin ishga tushadi |
| RecordChangeComplete | Yozuv o‘zgargandan keyin ishga tushadi |
| RecordsetChangeComplete | Recordset o‘zgargandan keyin ishga tushadi |
| WillChangeField | Field obyektining qiymati o‘zgarishidan oldin ishga tushadi |
| WillChangeRecord | Yozuv o‘zgarishidan oldin ishga tushadi |
| WillChangeRecordset | Recordset o‘zgarishidan oldin ishga tushadi |
| WillMove | Recordset’dagi joriy o‘rin o‘zgarishidan oldin ishga tushadi |
Kolleksiyalar
| Kolleksiya | Tavsif |
|---|---|
| Fields | Recordset obyektidagi Field obyektlari sonini ko‘rsatadi |
| Xususiyatlar | Recordset obyektidagi barcha Property obyektlarini o‘z ichiga oladi |
Fields kolleksiyasining xususiyatlari
| Xususiyat | Tavsif |
|---|---|
| Count | Fields kolleksiyasidagi elementlar sonini qaytaradi. Sanoq noldan boshlanadi. Misol: countfields=rs.Fields.Count |
| Item(named_item/number) | Fields kolleksiyasidagi ko‘rsatilgan elementni qaytaradi. Misol: itemfields=rs.Fields.Item(1) |
Properties kolleksiyasining xususiyatlari
| Xususiyat | Tavsif |
|---|---|
| Count | Properties kolleksiyasidagi elementlar sonini qaytaradi. Sanoq noldan boshlanadi. Misol: countprop=rs.Properties.Count |
| Item(named_item/number) | Properties kolleksiyasidagi ko‘rsatilgan elementni qaytaradi. Misol: itemprop = rs.Properties.Item(1) |
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
