ما الذي يحدث في الاداة DataSEt عند فلترة البيانات .
#1
هناك ادوات مثل DataGride فيها فرز للبيانات عند ربطها بالاداة DataSet وعند فرز البيانات هناك طريقتين لفرز البيانات .

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

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

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

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

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

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

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

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

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

وايضا عند النقر على احد الاعمدة لترتيب البيانات Order هل يتم ترتيبها بالذاكرة ام يتم الاستعلام من جديد
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#2
السلام عليكم



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



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



في Zeos > Fetchrow =25 و option doSmartOpen

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

Firedac ايضا فيها

Dbexpress لا توجد فيها



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


لا تنتظر حتى يتاثر Smile  ، بإستعمال الخاصية Fetchrow لن يتاثر
[-] كل من 2 users say قال شكرا ل Lam.Abdeldjalil على المشاركة المفيدة
  • أبو معاذ, bassem_43
الرد


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


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