مجموعة السجلات التمرير (ODBC)

هذا الموضوع يُطبق على فئات MFC ODBC.

بعد فتح مجموعة سجلات تحتاج للوصول إلى السجلات لعرض القيم أو القيام بعمليات حسابية أو إنشاء تقارير إلخ. التمرير يتيح لك النقل من سجل لآخر داخل مجموعة السجلات الخاصة بك.

هذا الموضوع يوضح :

  • كيفية التمرير من سجل لآخر في مجموعة سجلات.

  • تحت أى حالات يكون التمرير مدعم أو غير مُدعم.

تمرير من سجل لآخر

الفئة CRecordset توفر دالة العضو Move للتمرير داخل مجموعة سجلات. تنقل هذه الدالات السجل الحالي بواسطة مجموعات الصفوف. إذا طبقت إحضار صفوف كبيرة الحجم , فإن العملية Move تعيد وضع مجموعة السجلات على حسب حجم مجموعة الصفوف. إذا لم تطبق إحضار صفوف كبيرة الحجم, فإن استدعاء للدالة Move تُعيد وضع مجموعة السجلات بواسطة سجل واحد في كل مرة. لمزيد من المعلومات حول إحضار صفوف كبيرة الحجم راجع مجموعة السجلات: ‎جلب سجلات في تجمع (ODBC)

ملاحظة

عند التنقل عبر مجموعة السجلات ، الصفوف المحذوفة قد لا يتم تخطيها. لمزيد من المعلومات، راجع دالة العضو IsDeleted.

بالإضافة إلى دالات Move، يوفر CRecordset دالة عضو للتحقق ما إذا كان تم التمرير إلى ما بعد النهاية أو متقدمًا على بداية مجموعة السجلات.

لتحديد ما إذا كان التمرير ممكنا في مجموعة السجلات الخاصة بك , استدع دالة العضو CanScroll .

للتمرير

  1. تقديم سجل واحد أو مجموعة صفوف واحدة: قم باستدعاء دالة العضو MoveNext .

  2. تأخير سجل واحد أو مجموعة صفوف واحدة: قم باستدعاء دالة العضو MovePrev.

  3. إلى السجل الأول في مجموعة السجلات: قم باستدعاء دالة العضو MoveFirst .

  4. إلى السجل الأخير في مجموعة السجلات أو إلى مجموعة الصفوف الأخيرة: قم باستدعاء دالة العضو MovePrev.

  5. عدد N من السجلات نسبة إلى الموضع الحالى: قم باستدعاء دالة العضو Move .

لاختبار نهاية أو بداية مجموعة السجلات

  1. هل تم التمرير إلى ما بعد آخر سجل ؟ قم باستدعاء دالة العضو IsEOF .

  2. هل تم التمرير متقدمًا على اول سجل (أثناء الانتقال إلى الخلف) ؟ قم باستدعاء دالة العضو IsEOF .

يستخدم مثال التعليمات البرمجية التالي IsBOF و IsEOF للكشف عن حدود مجموعة سجلات عند التمرير في اتجاه إما.

// Open a recordset; first record is current
CCustSet rsCustSet( NULL );
rsCustSet.Open( );

if( rsCustSet.IsBOF( ) )
    return;
    // The recordset is empty

// Scroll to the end of the recordset, past
// the last record, so no record is current
while ( !rsCustSet.IsEOF( ) )
    rsCustSet.MoveNext( );

// Move to the last record
rsCustSet.MoveLast( );

// Scroll to beginning of the recordset, before
// the first record, so no record is current
while( !rsCustSet.IsBOF( ) )
    rsCustSet.MovePrev( );

// First record is current again
rsCustSet.MoveFirst( );

IsEOFبإرجاع القيمة غير صفرية في حالة مجموعة السجلات هو توضع بعد السجل الأخير. IsBOFبإرجاع القيمة غير صفرية في حالة مجموعة السجلات هو وضع يتأخر عن السجل أول (قبل الجميع السجلات). في كلتا الحالتين، لا يوجد هناك سجل للعمل عليه. في حالة استدعاء MovePrev عندما تكون IsBOF بالفعل TRUE أو MoveNext عندما تكون IsEOF بالفعل TRUE ، فإن إطار العمل يلقى CDBException. يمكنك أيضاً استخدام IsBOF و IsEOF للتحقق من كون مجموعة السجلات فارغة.

للحصول على مزيد من المعلومات عن التنقل بين السجلات راجع مجموعة السجلات : الإشارات المرجعية و المواضع المطلقة (ODBC)

عند دعم التمرير

كما تم تصميمه من قبل , يوفر SQL فقط التمرير إلى الأمام ولكن ODBC توسع إمكانيات التمرير. المستوى المتوفر لدعم التمرير يعتمد على برامج تشغيل ODBC الذى يعمل به التطبيق الخاص بك ، و مستوى المطابقة ODBC API لبرنامج التشغيل الخاص بك ، و ما إذا كان قد تم تحميل مكتبة رأس المؤشر ODBC في الذاكرة. لمزيد من المعلومات، راجع COM API for WMIوODBC : مكتبة مؤشرات ODBC

تلميحتلميح

يمكنك التحكم في ما إذا كان سيتم استخدام مكتبة رؤوس المؤشرات. راجع المعلمات bUseCursorLib و dwOptions لـ CDatabase::Open.

ملاحظة

بعكس فئات MFC DAO فإن الفئات MFC ODBC لا توفر مجموعة من دالات Find لتحديد موقع السجل التالي (أو السابق) الذي يوافق معايير "المحدد.

راجع أيضًا:

المرجع

CRecordset::CanScroll

CRecordset::CheckRowsetError

المبادئ

مجموعة السجلات (ODBC)

مجموعة السجلات تصفية السجلات (ODBC)