<%
'النظام الأساسي: Win2000+IIS5.0+Sql2000
'ملاحظة: تمت ترقية الإصدار الأخير، وكان الإصدار الأخير هو إصدار SQL ولم يتم استخدام أي إجراءات مخزنة.
'الإصدار السابق: [الأصل] كود ترحيل بيانات ممتاز على مستوى المليون - (مشغول لفترة طويلة) (http://bbs.bccn.net/thread-175543-1-1.html)
'--------------------------------------------- الكود التالي هو رمز صفحة الويب
Response.Buffer = صحيح
خافت SqlLocalName،SqlUsername،SqlPassword،SqlDatabaseName
ديم كونستر، كونيتيكت
''''''''''''''''''''''''' قاعدة بيانات SQL ''''''''''''''' '''''' ''''''''''''''''''''''''''''
SqlLocalName =(محلي)'عنوان IP للاتصال [عنوان IP أجنبي محلي (محلي)]
SqlUsername=sa 'اسم مستخدم قاعدة البيانات
SqlPassword=XXXXXX 'كلمة مرور المستخدم
SqlDatabaseName=NewsTable 'اسم قاعدة البيانات
ConnStr = Provider=Sqloledb;معرف المستخدم= & SqlUsername & ;الكتالوج الأولي = & SqlDatabaseName & ;
'''''''''''''''''''''''''''''''' '''''''' ''''''''''''''''''''''''''''
على خطأ استئناف التالي
تعيين Conn=Server.CreateObject(ADODB.Connection)
Conn.open ConnStr
إذا أخطأت ثم
خطأ. واضح
SetConn=لا شيء
Response.Write <div style='font-size:14px;color=#ff0000' align='center'>خطأ في اتصال قاعدة البيانات، يرجى التحقق من سلسلة اتصال قاعدة البيانات</div>
الاستجابة.النهاية
نهاية إذا
'تقوم هذه الفئة بتنفيذ تعليمات برمجية لإنشاء مثيل دون مراعاة جميع الشروط الممكنة للترحيل. هذه الفئة هي للإشارة فقط
'------------------------------------------------ - -------------------------------------------------
'PageNo-الصفحة الحالية؛PageSizeX-حجم الصفحة؛PageCountX-العدد الإجمالي للصفحات؛FieldCount-العدد الإجمالي للسجلات؛شروط استعلام StrWhere
رقم الصفحة الخافت، PageSizeX، PageCountX، FieldCount، StrWhere
'أداء المهمة
PageNo=trim(Request.Querystring(PageNo))
يحدد PageSizeX=30' حجم الترحيل
إذا كان رقمًا (رقم الصفحة) أو رقم الصفحة = إذن، إذا لم تكن هناك قيمة للصفحة، فقم بتهيئة القيمة
رقم الصفحة = القيمة المطلقة (رقم الصفحة)
إذا كان رقم الصفحة = 0، فإن رقم الصفحة = 1
آخر
رقم الصفحة=1
نهاية إذا
StrWhere=(ClassCode=0101 and Hits>20)'ملاحظة، انتبه إلى طول الأحرف هنا
تعيين ريكوم = server.createobject(adodb.command)
recom.activeconnection = كون
نوع التوصية = 4
recom.commandtext = News_Class
recom.Parameters.Appendrecom.CreateParameter(@StrWhere,202,1,100,StrWhere)
recom.Parameters.Appendrecom.CreateParameter(@PageSize,3,1,,PageSizeX)
recom.Parameters.Appendrecom.CreateParameter(@PageIndex,3,1,,PageNo)
تعيين rs = recom.execute ()
إذا rs.eof بعد ذلك
مجموعة rs=لا شيء: مجموعة recom=لا شيء: Conn.Close: مجموعة Conn=لا شيء
Response.write <script LANGUAGE='javascript'>alert('لم يتم العثور على سجل حاليًا، يرجى الرجوع والمحاولة مرة أخرى!');history.go(-1);</script>
Response.end
نهاية إذا
"عرض البيانات."
تفعل في حين لا rs.eof
Response.write&rs(Title)& إضافة الوقت:&rs(AddTime)&<br/>
rs.movenext
حلقة
'احصل على العدد الإجمالي للسجلات واحسب عدد الصفحات
set rs = rs.NextRecordset
إذا rs(countx)> 0 ثم
FieldCount=RS(countx)
آخر
عدد الحقول = 0
نهاية إذا
إذا (FieldCount mod PageSizeX)>0 ثم
PageCountX=((FieldCount - (FieldCount mod PageSizeX))/ PageSizeX)+1
آخر
PageCountX= (FieldCount / PageSizeX)
نهاية إذا
'إغلاق وتحرير الموارد ذات الصلة
مجموعة rs=لا شيء: مجموعة recom=لا شيء: Conn.Close: مجموعة Conn=لا شيء
"إظهار الترحيل."
إذا رقم الصفحة <= 1 ثم
Response.Write <font color='#FF0000'>[الصفحة الرئيسية] [الصفحة السابقة]</font>
آخر
Response.Write[<a href='?PageNo=1' target='_self' title='الصفحة الرئيسية'><font color='#FF0000'>الصفحة الرئيسية</font></a>]
Response.Write[<a href='?PageNo=&(PageNo-1)&' target='_self' title='الصفحة السابقة'><font color='#FF0000'>الصفحة السابقة</font>< /a >]
نهاية إذا
إذا PageNo>=PageCountX ثم
الاستجابة.اكتب <font color='#FF0000'>[الصفحة التالية] [الصفحة الأخيرة]</font>
آخر
Response.Write[<a href='?PageNo=&(PageNo+1)&'target='_self' title='الصفحة التالية'><font color='#FF0000'>الصفحة التالية</font>< /a >]
Response.Write[<a href='?PageNo=&PageCountX&' target='_self' title='Last page'><font color='#FF0000'>الصفحة الأخيرة</font></a>]
نهاية إذا
Response.Write[Page <font color=red>&PageNo&</font>/total <font color=red> & PageCountX &</font>]
Response.Write [إجمالي<font color=red>&FieldCount&</font> العناصر<font color=red>& PageSizeX & </font> العناصر/الصفحة]
الاستجابة.اكتب انتقل إلى & <input id=zhuanpage name=zhuanpage size=2 value=&PageNo&> &page <input type=submit value=Go onclick=gotoPage()>
الاستجابة.اكتب</td></tr></table>
Response.Write<script>function gotoPage(){var pg=document.getElementById('zhuanpage').value;if(isNaN(pg)||pg>&PageCountX&||pg<0){window.alert('يرجى العلم أن صحيح أدخل رقم الصفحة، والذي يمكن أن يكون عددًا صحيحًا موجبًا فقط ولا يمكن أن يكون أكبر من &PageCountX&');return false;}else{window.location.href='?PageNo='+document.getElementById('zhuanpage').value+'';return true;}}</script>
%>
'------------------------------------------------ - ------ الكود التالي هو رمز الإجراء المخزن
إنشاء الإجراءNews_Class
- أخبار المعلومات بملايين الصفحات
(
@StrWhere فارشار (100)،
@PageSize int،
@PageIndexint
)
مثل
أعلن@strSQLvarchar(2000) - البيان الرئيسي
أعلن@strCountSQL varchar(2000) - إجمالي البيان الرئيسي للسجل
أعلن@strTmpvarchar(1000) - متغير مؤقت
اضبط @strTmp = حدد الجزء العلوي + str(@PageSize) + العنوان، AddTime من Tb_News - لاحظ هنا أن هناك حاجة إلى عدة حقول لقراءة عدة حقول
إذا @StrWhere<>''
يبدأ
قم بتعيين @strSQL=@strTmp + حيث المعرف < (اختر الحد الأدنى (المعرف) من (اختر أعلى + str((@PageIndex-1)*@PageSize)+ المعرف من Tb_News حيث +@StrWhere+ترتيب حسب وصف المعرف) كـ tblTmp ) و+@StrWhere+ الترتيب حسب معرف التعريف
قم بتعيين @strCountSQL=حدد العد (المعرف) كـ countx من Tb_News حيث +@StrWhere+
نهاية
آخر
يبدأ
قم بتعيين @strSQL=@strTmp + حيث المعرف < (اختر min(ID) من (اختر top + str((@PageIndex-1)*@PageSize)+ ID من Tb_News بالترتيب حسب المعرف desc) كـ tblTmp ) بالترتيب حسب المعرف desc
قم بتعيين @strCountSQL=حدد العد (المعرف) كـ countx من Tb_News
نهاية
إذا @PageIndex = 1
إذا @StrWhere<>''
يبدأ
قم بتعيين @strSQL=@strTmp + Where +@StrWhere+ بالترتيب حسب المعرف
نهاية
آخر
يبدأ
قم بتعيين @strSQL=@strTmp + الترتيب حسب وصف المعرف
نهاية
تنفيذي (@strSQL)
إكسيك(@strCountSQL)
يذهب