رکوردست (ADO Recordset)
«رکوردست ADO (ADO Recordset)» مجموعه ای از ردیف ها و ستون هاست. یعنی مثل یک جدول کوچک همراه توست. بنابراین با آن خواندن، فیلترکردن، مرتب سازی و ویرایش داده ممکن می شود. این شیء در ADO مهم ترین ابزار برای دستکاری داده است.
رکوردست ADO چیست؟
رکوردست یک ظرف داده است. داخلش ردیف ها «Record» و ستون ها «Field» قرار دارند. هنگام بازشدن، اشاره گر روی اولین ردیف است. اگر داده ای نباشد، هر دو ویژگی BOF و EOF درست می شوند.
ProgID (شناسه ساخت)
set objRecordset = Server.CreateObject("ADODB.recordset")
حالت های به روزرسانی
دو مدل وجود دارد: «Immediate» یعنی تغییرات با Update فوراً ذخیره شوند. «Batch» یعنی چند تغییر ذخیره موقت شوند و با UpdateBatch یکجا ارسال شوند.
نوع های کرسر (Cursor Types)
«کرسر (Cursor)» جهت حرکت و دیدن تغییرات را تعیین می کند. چهار نوع داریم: پویا، کی ست، ایستا، و فقط به جلو.
- Dynamic: افزوده ها، تغییرها و حذف های دیگران را می بینی.
- Keyset: تغییرهای دیگران دیده می شود؛ افزوده های جدید را نه.
- Static: یک کپی ثابت برای جست وجو و گزارش.
- Forward-only: فقط رو به جلو حرکت می کند.
نکته: همه ارائه دهنده ها همه ویژگی ها یا متدها را پشتیبانی نمی کنند.
نمونه بازکردن و پیمایش
<%
' فرض: conn یک Connection باز است
set rs = Server.CreateObject("ADODB.recordset")
rs.CursorType = 3
rs.LockType = 3
rs.Open "SELECT * FROM Students", conn
Do While Not rs.EOF
Response.Write rs.Fields("Name").Value
Response.Write "<br/>"
rs.MoveNext
Loop
rs.Close
set rs = Nothing
%>
ویژگی های مهم رکوردست
برخی ویژگی های کلیدی را کوتاه ببینیم. سپس در نیاز، جزئی شو.
- BOF/EOF: قبل از اول یا بعد از آخر بودن.
- RecordCount: تعداد ردیف ها را می دهد.
- Filter و Sort: فیلتر و مرتب سازی روی فیلدها.
- CursorType و CursorLocation: نوع و مکان کرسر.
- LockType: نحوه قفل هنگام ویرایش.
- State و Status: وضعیت شیء و ردیف فعلی.
متدهای پرکاربرد
- Open/Close: باز و بستن رکوردست.
- MoveFirst/Next/Previous/Last: جابه جایی اشاره گر.
- Find و Seek: جست وجوی ردیف ها.
- AddNew/Delete/Update: افزودن، حذف و ذخیره تغییرات.
- UpdateBatch/CancelBatch: ذخیره یا لغو گروهی.
- GetRows/GetString: گرفتن داده به آرایه یا رشته.
Fields و Properties (مجموعه ها)
Inside رکوردست دو مجموعه داریم: Fields و Properties. با Count تعداد را بگیر. با Item به عضو برس.
<%
countFields = rs.Fields.Count
Response.Write countFields
itemByIndex = rs.Fields.Item(1)
itemByName = rs.Fields.Item("Name")
Response.Write itemByName.Value
countProps = rs.Properties.Count
Response.Write countProps
%>
مراحل عملی پیشنهادی
- Connection را آماده کن و تست کن.
- CursorType و LockType مناسب را تنظیم کن.
- با Open کوئری یا جدول را باز کن.
- با MoveNext تا EOF پیمایش کن.
- در پایان Close و آزادسازی را انجام بده.
هشدار: در Batch Update، حتماً UpdateBatch را فراموش نکن. وگرنه تغییرها ارسال نمی شوند.
پیوند با بخش های مرتبط
برای ردیف تکی، صفحه رکورد ADO را ببین. برای ستون ها، فیلد ADO مناسب است. همچنین، اتصال ADO پایه رکوردست است. این صفحه «رکوردست ADO» مرجع کاربردی شماست.
جمع بندی سریع
- رکوردست ظرف ردیف ها و ستون هاست.
- Immediate سریع ذخیره می کند؛ Batch گروهی ذخیره می کند.
- نوع کرسر روی دید و حرکت اثر دارد.
- قبل از پایان، همیشه Close را انجام بده.