مجرد ADO Recordset

مثال

GetRows
این مثال نحوه استفاده از روش GetRows را نشان می‌دهد.

رکوردهای Recordset

رکوردهای Recordset ADO برای نگهداری یک مجموعه از رکوردها از یک جدول پایگاه داده استفاده می‌شوند. یک رکوردset شامل رکوردها و ستون‌ها (فیلدها) است.

در ADO، این شیء مهم‌ترین و بیشتر مورد استفاده قرار گرفته برای عملیات داده‌ای بر روی پایگاه داده است.

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

وقتی اولین بار یک رکوردset را باز می‌کنید، اشاره‌گر رکورد فعلی به اولین رکورد اشاره می‌کند و ویژگی‌های BOF و EOF به False هستند. اگر هیچ رکوردی وجود نداشته باشد، ویژگی‌های BOF و EOF به True هستند.

رکوردهای Recordset قادر به پشتیبانی از دو نوع به‌روزرسانی هستند:

  • به‌روزرسانی فوری - به محض فراخوانی روش Update، همه تغییرات به صورت فوری به پایگاه داده نوشته می‌شوند.
  • به‌روزرسانی در یک بار - پرفایدر چندین تغییر را در حافظه ذخیره می‌کند و سپس این تغییرات را با استفاده از روش UpdateBatch به پایگاه داده ارسال می‌کند.

در ADO، 4 نوع مختلف از کلاینتورها (پوینترها) تعریف شده است:

  • کلاینتور پویا - به شما امکان می‌دهد اضافات، تغییرات و حذف‌های انجام شده توسط کاربران دیگر را مشاهده کنید
  • کلاینتور - شبیه به کلاینتورهای پویا است، اما شما نمی‌توانید اضافات انجام شده توسط کاربران دیگر را مشاهده کنید و از دسترسی به رکوردهای حذف شده توسط کاربران دیگر جلوگیری می‌کند. تغییرات داده‌ای که توسط کاربران دیگر انجام شده است، همچنان قابل مشاهده است.
  • موس (cursor) ثابت - یک نسخه ثابت از مجموعه رکوردها ارائه می‌دهد، که می‌توان از آن برای جستجو داده‌ها یا ایجاد گزارش‌ها استفاده کرد. علاوه بر این، اضافات، تغییرات و حذف‌هایی که توسط سایر کاربران انجام شده‌اند، دیده نمی‌شوند. این تنها نوع موس (cursor) مجاز هنگام باز کردن یک شیء Recordset کاربر است.
  • موس (cursor) به سمت جلو - فقط حرکت به سمت جلو در Recordset مجاز است. علاوه بر این، اضافات، تغییرات و حذف‌هایی که توسط سایر کاربران انجام شده‌اند، دیده نمی‌شوند.

نوع موس (cursor) را می‌توان از طریق ویژگی CursorType یا پارامتر CursorType در روش Open تنظیم کرد.

نکته:همه ارائه‌دهندگان (providers) تمام روش‌ها و ویژگی‌های Recordset را پشتیبانی نمی‌کنند.

ویژگی

ویژگی توضیح
AbsolutePage تنظیم یا بازگشت مقداری که صفحه‌ای که Recordset در آن قرار دارد را مشخص می‌کند.
AbsolutePosition تنظیم یا بازگشت مقداری که موقعیت رکورد فعلی در Recordset را مشخص می‌کند.
ActiveCommand شیء Command مرتبط با Recordset را بازمی‌گرداند.
ActiveConnection اگر اتصال بسته شده باشد، تعریف اتصال را تنظیم یا بازگرداند، اگر اتصال باز باشد، شیء Connection فعلی را تنظیم یا بازگرداند.
BOF اگر موقعیت رکورد فعلی قبل از اولین رکورد باشد، true بازمی‌گرداند، در غیر این صورت false.
Bookmark یک نقش‌نام (bookmark) تنظیم یا بازگرداند. این نقش‌نام موقعیت رکورد فعلی را ذخیره می‌کند.
CacheSize تعداد رکوردهایی که می‌توانند در حافظه پشتیبان (cache) قرار گیرند را تنظیم یا بازگرداند.
CursorLocation موقعیت سرویس موس (cursor) را تنظیم یا بازگرداند.
CursorType نوع موس (cursor) Recordset را تنظیم یا بازگرداند.
DataMember نام عضو داده‌ای که باید از شیء مرجع داده (DataSource) مورد استفاده قرار گیرد را تنظیم یا بازگرداند.
DataSource یک شیء را مشخص می‌کند که شامل داده‌هایی است که باید به عنوان Recordset نمایش داده شوند.
EditMode وضعیت ویرایش رکورد فعلی را بازمی‌گرداند.
EOF اگر موقعیت رکورد فعلی پس از آخرین رکورد باشد، true بازمی‌گرداند، در غیر این صورت false.
Filter یک فیلتر برای داده‌های Recordset بازمی‌گرداند.
Index تنظیم یا بازگشت نام شاخص فعلی Recordset.
LockType تنظیم یا بازگشت مقداری که نوع قفل را در هنگام ویرایش یک رکورد در Recordset می‌توان مشخص کرد.
MarshalOptions تنظیم یا بازگشت یک مقدار، که این مقدار مشخص می‌کند کدام مدارک باید به سرور بازگردانده شوند.
MaxRecords تعداد بیشینه رکوردهایی که از یک جستجو بازمی‌گردانند Recordset object را تعیین یا بازمی‌گرداند.
PageCount تعداد صفحات داده Recordset object را بازمی‌گرداند.
PageSize تعداد بیشینه رکوردهای مجاز در یک صفحه Recordset object را تعیین یا بازمی‌گرداند.
RecordCount تعداد رکوردها در Recordset object را بازمی‌گرداند.
Sort تعیین یا بازگرداندن نام یک یا چند فیلد که به عنوان معیار مرتب‌سازی Recordset استفاده می‌شوند.
Source یک مقدار رشته‌ای، یا یک رفرنس به Command object، یا یک مقدار رشته‌ای بازمی‌گرداند که می‌تواند منبع Recordset object را نشان دهد.
State یک مقدار بازمی‌گرداند که می‌تواند توضیح دهد آیا Recordset object باز، بسته، در حال اتصال، در حال اجرا یا در حال بازیابی داده است.
Status وضعیت فعلی رکورد در مورد به‌روزرسانی گروهی یا عملیات بزرگ را بازمی‌گرداند.
StayInSync تعیین یا بازگرداندن اینکه آیا رفرنس به رکوردهای فرزند تغییر می‌کند یا نه، زمانی که موقعیت رکورد والد تغییر می‌کند.

روش

روش توضیح
AddNew یک رکورد جدید ایجاد می‌کند.
Cancel یک اجرا را لغو می‌کند.
CancelBatch یک به‌روزرسانی گروهی را لغو می‌کند.
CancelUpdate تغییرات انجام شده بر روی یک رکورد Recordset object را لغو می‌کند.
Clone یک کپی از Recordset موجود ایجاد می‌کند.
Close Recordset را می‌بندد.
CompareBookmarks دو نشان‌نمای کتابخانه را مقایسه می‌کند.
Delete یک رکورد یا گروه از رکوردها را حذف می‌کند.
Find یک رکورد را در Recordset که با یک شرط خاص مطابقت دارد، جستجو می‌کند.
GetRows رکوردهای چندگانه‌ای را از یک Recordset object به یک آرایه دو بعدی کپی می‌کند.
GetString Recordset را به عنوان یک رشته بازمی‌گرداند.
Move در Recordset object، پسوند نویسنده را حرکت می‌دهد.
MoveFirst پسوند نویسنده را به اولین رکورد حرکت می‌دهد.
MoveLast پسوند نویسنده را به آخرین رکورد حرکت می‌دهد.
MoveNext پسوند نویسنده را به رکورد بعدی حرکت می‌دهد.
MovePrevious پسوند نویسنده را به رکورد قبلی حرکت می‌دهد.
NextRecordset با اجرای یک سری از دستورات، Recordset فعلی را پاک می‌کند و Recordset بعدی را باز می‌گرداند.
Open باز کردن یک عنصر پایگاه داده، این عنصر دسترسی به رکوردهای جدول، نتایج جستجو یا Recordset ذخیره شده را فراهم می‌کند.
Requery داده‌های Recordset اوبجکت را با اجرای دوباره جستجوی پایه‌ای آن به‌روزرسانی می‌کند.
Resync داده‌های فعلی Recordset را از بانک اطلاعاتی اصلی به‌روزرسانی می‌کند.
Save Recordset اوبجکت را به یک فایل یا Stream اوبجکت ذخیره می‌کند.
Seek موقعیت رکوردی که با مقدار مشخص همخوانی دارد را در شاخص Recordset جستجو می‌کند و آن را به رکورد فعلی تبدیل می‌کند.
Supports یک مقدار بولین (布尔) برمی‌گرداند، این مقدار می‌تواند تعیین کند که آیا Recordset اوبجکت از نوع خاصی از قابلیت‌ها پشتیبانی می‌کند یا خیر.
Update تمام تغییرات مربوط به یک رکورد Recordset را ذخیره کند.
UpdateBatch تمام تغییرات مربوط به Recordset را به بانک اطلاعاتی ذخیره کنید. از حالت بسته‌بندی برای استفاده از آن استفاده کنید.

رویداد

توجه: نمی‌توان رویدادها را با استفاده از VBScript یا JScript (فقط زبان‌های Visual Basic، Visual C++ و Visual J++ می‌توانند رویدادها را مدیریت کنند).

رویداد توضیح
EndOfRecordset وقتی که سعی می‌شود به سمت ردیفی فراتر از پایان Recordset حرکت شود، فعال می‌شود.
FetchComplete وقتی که همه رکوردها در عملیات آسانک خوانده شدند، فعال می‌شود.
FetchProgress در طول عملیات آسانک در بازه‌های زمانی مشخص فعال می‌شود، تعداد رکوردهایی که خوانده شده‌اند را گزارش می‌دهد.
FieldChangeComplete قبل از تغییر مقدار Field اوبجکت، فعال می‌شود.
MoveComplete بعد از تغییر موقعیت فعلی Recordset، فعال می‌شود.
RecordChangeComplete بعد از تغییر یک رکورد، فعال می‌شود.
RecordsetChangeComplete بعد از تغییر Recordset، فعال می‌شود.
WillChangeField قبل از تغییر مقدار Field اوبجکت، فعال می‌شود
WillChangeRecord قبل از تغییر یک رکورد، فعال می‌شود.
WillChangeRecordset قبل از تغییر Recordset، فعال می‌شود.
WillMove قبل از تغییر موقعیت فعلی Recordset، فعال می‌شود.

مجموعه

مجموعه توضیح
Fields تعداد Field اوبجکت‌های Recordset را در اینجا نشان می‌دهد.
Properties شامل همه Property اوبجکت‌های Recordset.

ویژگی‌های مجموعه Fields

ویژگی توضیح
Count

بازگشت تعداد موارد در مجموعه fields. از 0 شروع می‌شود.

مثال:

	countfields = rs.Fields.Count
	
Item(named_item/number)

بازگشت یکی از موارد مشخص شده در مجموعه fields.

مثال:

	itemfields = rs.Fields.Item(1)
	یا	
	itemfields = rs.Fields.Item("Name")
	

ویژگی‌های مجموعه Properties

ویژگی توضیح
Count

بازگشت تعداد موارد در مجموعه properties. از 0 شروع می‌شود.

مثال:

	countprop = rs.Properties.Count
	
Item(named_item/number)

بازگشت به مجموعه properties یکی از موارد مشخص شده.

مثال:

	itemprop = rs.Properties.Item(1)
	یا
	itemprop = rs.Properties.Item("Name")