الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Efficent Paging For Larg Sets Of Data

بدأه صاحب همة في 9 يونيو 2008 · 3 رد · 566 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته...

كنت أفكر في طريقة لعرض بيانات جدول يتواجد به حالياً حوالي 3000 سجل وهي قابلة للزيادة ، فكرت في عرضها في جريد فيو باستخدام Paging . من أجل امكانية الاضافة والتعديل والحذف وحتى البحث باستخدام GridView نفسها ، وحتى لاتكون كمية البيانات الجلوبة كبيرة وجدت أن أستخدم الطريقة الواردة هنا:

http://www.builderau.com.au/program/sqlser...455t-320002016c

وكذلك هنا

http://www.4guysfromrolla.com/webtech/042606-1.shtml

المشكلة أن الفكرة تنطبق على SqlServer والمفترض ان يعمل موقعي على أوراكل بالاضافة الى سيكوال سيرفر.

كيف يمكن أن أقوم بتطبيق الفكرة بحيث تخدم النوعين ، أم أن هناك فكرة أخرى مختلفة يمكن أن تؤدي الغرض بشكل أفضل ؟

مع خالص التقدير...

من لمح فجر الأجر هان عليه ظلام التكليف

#2

الـrownum موجودة في الأوراكل.

SQL Server 2005

ٍُSELECT people_id, lastname, firstname, rownum FROM
( SELECT people_id, lastname, firstname,
row_number() over(order by lastname) AS [rownum]
FROM Test.dbo.People ) AS PeopleRecords
WHERE rownum between 3 AND 7

Oracle

SELECT people_id, lastname, firstname, X FROM
( SELECT people_id, lastname, firstname,
rownum X 
FROM People order by lastname)  PeopleRecords
WHERE X between 3 AND 7

تم تعديل هذه المشاركة بواسطة System Down في 9 يونيو 2008 في 11:24

#3

أخي الفاضل ..

جزاك الله خيرا، لكن هناك مشكلة وهي أن عمل الدالة الموجودة في أوراكل لا يماثل تلك الموجودة في سيكوال ، بمعنى أن العمود people_id اذا كان يحوي بيانات من 1-500 مثلاً وطلبت الترتيب فستكون النتيجة :

people_id   rownum		 
	  1			   5			  
2			   6			  
3			   7			  
4			   8			  
5			   1			  
				  ...			 .....

بمعنى أن سيكوال يقوم بترتيب الحقول بناء على الحقل المطلوب ثم يقوم باسناد ارقام الصفوف بعد الترتيب : بمعنى أن الصف الاول يوجد به ID 1 and rownum 1 - الصف الثاني ID 2 rownum2 وهكذا ...

أما في اوراكل فهذا الامر ليس بهذه الصورة بل هو كما في الاعلى..

هل هناك حل ؟

من لمح فجر الأجر هان عليه ظلام التكليف

#4

جرب هذا

SELECT people_id, lastname, firstname, X FROM
	(SELECT people_id, lastname, firstname, rownum X FROM 
		(SELECT people_id, lastname, firstname
		FROM People order by lastname)
	) PeopleRecords	
WHERE X between 3 AND 7

مواضيع مشابهة