delphi4arab منتديات دلفي للعرب

نسخة كاملة : ما الذي يحدث في الاداة DataSEt عند فلترة البيانات .
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
هناك ادوات مثل DataGride فيها فرز للبيانات عند ربطها بالاداة DataSet وعند فرز البيانات هناك طريقتين لفرز البيانات .

الطريقة الاولى وهي الانتقال الى السجل المحدد مع بقاء جميع السجلات في الاداة

الطريقة الثانية وهي اختفاء جميع السجلات ويقاء نتيجة البحث فقط

الان السؤال ثقنياً  ما الذي يحدث بالضبط .

هل بالطريقة الاولى يتم الانتقال الى السجل الموجود بالذاكرة فقط ، وهذا ما اتصوره

وهل بالطريقة الثانية هل يتم اخفاء باقي السجلات مع بقائها في الذاكرة ام يتم اعادة الاستعلام وملئ الاداة من جديد .

يعني عندي 10 الالاف سجل ، هل يطلب سجل واحد من قاعدة البيانات او لا يطلب اي شئ منها وانما يخفي الكل ويبقي فقط السجل المطلوب

الان السؤال الثالث بحال ان الاداة تعيد الاستعلام من جديد .

ما عدد السجلات التي يمكن اجراء بحث عليها باعادة الاستعلام من خلال اداة على شبكة محلية دون ان يتأثر الاداء

يعني مثلا نقول 5 الالاف سجل مع حقل Blob او عشرة من غير حقل Blob يعني من واقع التجربة عندكم .

وايضا عند النقر على احد الاعمدة لترتيب البيانات Order هل يتم ترتيبها بالذاكرة ام يتم الاستعلام من جديد
السلام عليكم



العمل بـ locate /  filtre الخاصة بالـ dataset تجلب كل التسجيلات الذاكرة ثم تقوم بالبحث ، لذا لا أنصحك بإستعمالها في حال كانت البيانات ضخمة.



إذا كنت تستعمل مكونات devart ـ dac * توجد خاصية FilterSQL إستعملها ،أما إذا كنت تستعمل مكونات اخرى إبحث بـ Sql مع خاصية تحديد عدد السطور المجلوبة



في Zeos > Fetchrow =25 و option doSmartOpen

في devart ـ dac > FetchRows =25*  و FetchAll = false

Firedac ايضا فيها

Dbexpress لا توجد فيها



إقتباس :ما عدد السجلات التي يمكن اجراء بحث عليها باعادة الاستعلام من خلال اداة على شبكة محلية دون ان يتأثر الاداء


لا تنتظر حتى يتاثر Smile  ، بإستعمال الخاصية Fetchrow لن يتاثر