لقد قمت مؤخرًا بتدريب الآخرين على ترحيل صفحات ASP للمبتدئين الجدد في ASP، حيث إن أبسط عملية ترحيل هي استخدام تقنية الترحيل الخاصة بـ Recordset، وهي تستخدم بشكل أساسي لترحيل كمية صغيرة من البيانات مناسب لترحيل كمية كبيرة من البيانات.
1. إنشاء كائن مجموعة السجلات
انسخ التعليمات البرمجية كما يلي:Dim objMyRst
Set objMyRst=Server.CreateObject(ADODB.Recordset)
objMyRst.CursorLocation=adUseClientBatch 'يمكن للعميل إجراء عملية مجمعة
objMyRst.CursorType=adOpenStatic' نوع المؤشر هو نوع ثابت.
ملاحظة: لا يمكن أن تكون كائنات مجموعة السجلات يستخدم مع Set objMyRst=Connection .Excute يتم إنشاء عبارة strSQL لأن كائن Recordset الذي تقوم بإنشائه هو adOpenFowardOnly ولا يدعم ترحيل مجموعة السجلات
2. افتح كائن Recordset
وانسخ التعليمات البرمجية كما يلي:
Dim strSql
strSql=select * from ietable
objMyRst.Oepn strSql,ActiveConnection,,,adCmdText
3. قم بتعيين خاصية PageSize الخاصة بـ Recordset
وانسخ الكود كما يلي:
objMyRst.PageSize=20
حجم الصفحة الافتراضي هو 10.
4. قم بتعيين الخاصيةAbsolutePage لمجموعة السجلات
كما يلي:
انسخ التعليمات البرمجية كما يلي:
Dim intCurrentPage
intCurrentPage=1
objMyRst.AbsolutePage=intCurrentPageAbsolutePage
هو 1 إلى قيمة PageCount لكائن Recordset
5.
رمزعرض
رمز نسخة البيانات كما يلي:
Response.Write(<table>)
PrintFieldName(objMyRst)
For i=1 To objMyRst.PageSize
PrintFieldValue(objMyRst)
objMyRst.MoveNext
إذا objMyRst.Eof ثم اخرج للاستجابة
التالية
.Write( </table> )
التعليمات:
1. إن adOpenStatic وadUseCilentBatch وadCmdText هي ثوابت تم تعريفها بواسطة adovbs.inc لاستخدامها، انسخ adovbs.inc إلى الدليل الحالي وقم بتضمينها في البرنامج
كما يلي:
<! --#Include File=adovbs.inc-->
2. رمز PrintFielName، وظيفة PrintFieldValue كما يلي:
انسخ الرمز كما يلي:
<%
Function PrintFieldName(objMyRst)
'المعلمة objMyRst هي كائن مجموعة السجلات
' Definition
Dim objFld
Response.Write < tr bgcolor='#CCCCCC'>
لكل objFld في objMyRst.Fields
Response.Write <td> & objFld.Name & </td>
الاستجابةالتالية
.Write(</tr>)
وظيفةالنهاية
PrintFieldValue(objMyRst)
'المعلمة objMyRst هي كائن مجموعة سجلات
' التعريف
Dim objFld
Response.Write(<tr >)
For كل objFld في objMyRst.Fields
'Response.Write<td> & objMyRst.Fields(intLoop).value & </td>
Response.Write <td> & objFld.value & </td>
الاستجابةالتالية
. Write(<tr>)
وظيفة النهاية
%>