لإنشاء تطبيق ويب ، تعد وظيفة تصفح الصفحات ضرورية. هذه المشكلة شائعة جدًا في معالجة قاعدة البيانات. في الواقع ، لا تنطبق طريقة ترقيم الترقيم هذه إلا على كمية صغيرة من البيانات. دعونا نتبع محرر قناة التكنولوجيا الجديدة الخاطئة لمعرفة المزيد!
مصدر الأفكار:
خذ سجلات من NTH إلى MTH من جدول النشر:
حدد TOP M-N+1 *
من النشر
أين (معرف ليس في
(حدد TOP N-1 ID
من النشر))
ما يلي هو الإجراء المخزن:
نسخة الكود كما يلي:إنشاء الإجراء تراجع 3
tblname varchar (255) ، - اسم الجدول
strgetfields varchar (1000) = '*' ، - أعمدة يتم إرجاعها
fldName varchar (255) = '' ، - اسم الحقل
pagesize int = 10 ، - حجم الصفحة
pageIndex int = 1 ، - رقم الصفحة
docount bit = 0 ، - إرجاع العدد الإجمالي للسجلات ، إرجاع إذا كانت القيمة ليست 0
ordertype bit = 0 ، - اضبط نوع الفرز ، وإذا لم تكن القيمة 0 ، فالترتيب التنازلي
strwere varchar (1500) = '' - ظروف الاستعلام (ملاحظة: لا تضيف أين)
مثل
إعلان strsql varchar (5000) - بيان الموضوع
DECLAREARESTRTMP VARCHAR (110) - متغير مؤقت
DECRAREARESTRORDER VARCHAR (400) - نوع الفرز
إذا docount! = 0
يبدأ
إذا strwere! = ''
SETSTRSQL = 'حدد العد (*) على أنه إجمالي من [' + tblName + '] حيث' + @strwere
آخر
SETSTRSQL = 'SELECT COUNT (*) على أنه إجمالي من [' + tblName + ']']
نهاية
-يعني الرمز أعلاه أنه إذا لم يكن Docount أكثر من 0 ، فسيتم تنفيذ العدد الكلي. جميع الرموز التالية هي حالة حيث @Docount هي 0:
آخر
يبدأ
إذا ordertype! = 0
يبدأ
SETTRTMP = '<(SELECT MIN'
SETSTRORDER = 'ORDER by [' +fldName + '] desc'
-إذا لم يكن ordertype 0 ، ثم قم بإجراء ترتيب تنازلي. هذه الجملة مهمة جدا!
نهاية
آخر
يبدأ
SETTRTMP = '> (حدد الحد الأقصى "
SETSTRORDER = 'ORDER by [' +fldName + '] ASC'
نهاية
إذا pageIndex = 1
يبدأ
إذا strwere! = ''
SETSTQL = 'SELECT TOP' + stR (pagesize) + '' + @ @strgetfields + 'من [' +tblname + '] حيث " + strwere +' ' + strower
آخر
SETSTQL = 'SELECT TOP'+ StR (pagesize)+ ''+ @strgetfields+ 'من [' +TBLNAME+ ']
-إذا كانت الصفحة الأولى ، قم بتنفيذ الكود أعلاه ، والذي سيؤدي إلى تسريع سرعة التنفيذ
نهاية
آخر
يبدأ
SETSTRSQL = 'SELECT TOP' + StR (pagesize) + '' +@strgetfields + 'from ['
+tblName + '] حيث [' + fldName + ']' + @Strtmp + '(['
+fldName + ']) من (SELECT TOP' + STR ((@pageIndex-1)*@pagesize) + '['
+fldName + '] من [' + tblname + ']' + strorder + ') كـ tbltmp)'
+ strorder
إذا strwere! = ''
SETSTRSQL = 'SELECT TOP' + StR (pagesize) + '' +@strgetfields + 'from ['
+tblName + '] حيث [' + fldName + ']' + @Strtmp + '(['
+fldName + ']) من (SELECT TOP' + STR ((@pageIndex-1)*@pagesize) + '['
+fldName + '] من [' + tblname + '] حيث' + strwere + '' '
+ strorder + ') كـ TBLTMP) و " + strwere +' ' + strorder
نهاية
نهاية
exec (strsql)
-strsql
يذهب
من خلال المحتوى الذي أدخله محرر قناة التكنولوجيا الجديدة ، أعتقد أن كل شخص لديه فهم معين. إذا كنت ترغب في معرفة المزيد من المحتوى التقني ، فيرجى الاستمرار في الانتباه إلى قناة التكنولوجيا الجديدة!