كيفية تسريع تحميل السجلات في dbgrid
#1
لدي قاعدة بيانات بها جداول تضم عدد كبير من السجلات..عند تحميلها إلى dbgrid فإنها تأخذ وقتا طويلا...ألاحظ خلاله حركة scroll حتى تكتمل..... هل من طريقة لتفادي هذا المشكل؟
الرد
#2
السلام عليكم

يمكنك تحديد عدد التسجيلات المختارة ، لاحظ المثال في الصورة ( إياك أن تعمل مثلها عندي براءة إختراع :p )

[صورة: scrollcc.png]

الأكسس
كود :
SELECT TOP 25
كود :
http://office.microsoft.com/en-001/access-help/all-distinct-distinctrow-top-predicates-HA001231351.aspx
فايربيرد
كود :
SELECT FIRST 10 SKIP 20 column1, column2, column3 FROM
كود :
http://scott.yang.id.au/2004/01/limit-in-select-statements-in-firebird/
MySQL and Oracle SQL Server
كود :
http://www.w3schools.com/sql/sql_top.asp
ما المكونات المستخدمة في الإتصال ؟

بالتوفيق
الرد
#3
شكرا على التفاعل
أنا أستخدم قاعدة بيانات أكسس ....أما عن المكونات فهي ado .
كيف يمكنني استخدام الكود السابق؟
الرد
#4
أقدم لك الإستعلامات و الباقي عليك

NEXT
كود :
SELECT TOP 25 id,field1.. from table where id>lastrecordnum
id حقل معرف نوع رقمي Autoinc أوتوماتيكي أو يدوي
lastrecordnum رقم آخر سجل في الجدول

PRIOR
كود :
SELECT TOP 25 id,field1.. from table where id<firstrecordnum
firstrecordnum رقم أول سجل في الجدول

+ لتحسين الأداء راجع مجلة منتدى دلفي للعرب : العدد 05

بالتوفيق
الرد
#5
لما لا تستخدم Thread ؟
الرد
#6
أنا أرغب في ظهور جميع السجلات لكن مع سرعة في التحميل ...أو وضع شريط تقدم التحميل حتى لا ينزعج المستخدم ..... عموما أنا أرغب كذلك في الاستفادة من الاقتراح المقدم....
بوركتم جميعا......
الرد
#7
إقتباس : لما لا تستخدم Thread ؟
على ماأظن لا يمكن 'ليس لها فائدة'؟ ( لأنه بإستخدام CursorLocation clClient عند فتح الـ DataSet لا يتم العرض حتى ينتهي التحميل )
كنت أبحث سابقا عن حل لذلك وهو بفتح الـ DataSet ـ asynchronously لكن توقفت عندما سمعت عن الأخطاء Bugs الموجودة في asynchronous و ado
لتحسين الأداء بإختصار ضع CursorLocation clServer
+ حل آخر ضع progress bar و إجعلها تتحرك ليصبر المستخدم Big Grin
أو الحل الأول أفضل : تظهر 100 تسجيل مثلا و تتجول بالمئات بزري NEXT و PRIOR

بالتوفيق
الرد
#8
شكرا جزيلا أخي Lam.Abdeldjalil ...
سوف أجرب ما اقترحته ... وقد أستفسر إذا ما استعصى علي الأمر...
إقتباس :الحل الأول أفضل : تظهر 100 تسجيل مثلا و تتجول بالمئات بزري NEXT و PRIOR

هذا يبدو جيدا
الرد
#9
Lam.Abdeldjalil كتب :السلام عليكم
يمكنك تحديد عدد التسجيلات المختارة ، لاحظ المثال في الصورة ( إياك أن تعمل مثلها عندي براءة إختراع :p )
[صورة: scrollcc.png]

أنا أجول المنتدى هنا و هناك عن firebird يبدو الأخ عبد الجليل هو ملازمي في هذه النزهة أينما ذهبت ، بارك الله فيك أخي الكريم

لكن و الله أتعبتنا لينكات الصور ، هذه الينكات اللعينة حرمتنا براءة الإختراع
الرد
#10
من الافضل لو تكون dbgrid مرقمة ( بالصفحات)

PHP كود :
SELECT column_name(s)
    
FROM table_name
    LIMIT number
; 
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم