المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : البحث في قاعدة بيانات كبيرة من نوع Dbf


delphi4ever
20-04-2008, 10:45 AM
السلام عليكم ورحمة الله تعالى وبركاته

حصل معي مشكل عندما كنت اود القيام بعملية بحث في قاعدة بيانات تحتوي على 40ألف سجل بيانات،
عملية البحث تستغرق مدة طويلة جدا مع ثقل البرنامج وتعطيله عند البحث...
هل من طريقة نافعة؟

B.M.AbdelAziZ
20-04-2008, 01:13 PM
حاول ان تعمل Pack للقاعدة لكي تتخلص من السجلات المحذوفة
وبعدها ReIndex اعد الأدلة الفريدة
-
ان كنت تستخدم المكون TTable فاسرع وسيلة للبحث هي Locate
-
او استعمل Query للبحث احسن

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

xinofix
20-04-2008, 06:09 PM
لا شك وأنك تستعمل قاعدة بيانات Paradox
وفي هذه الحالة لامفر من المرور بمحرك BDE الثقيل
وبالنظر إلى العدد الكبير للسجلات، فإنه لا مناص من أن تصادف مشكل البطء
هذا إن لم تصادف إنهيار المشروع فيما بعد
أحسن طريقة للتخفيف هي إستعمال الفلتر
لاينصح باستخدام Paradox في برامج كبيرة
أنصحك بما يلي: Absolute - CodeBase - Apollo - Elevate - MySQL ...

[ أنظر هنا وقارن

http://www.codebase.com/products/perfstats.php
http://www.componentace.com/bde_replacement_database_delphi_absolute_database. htm

B.M.AbdelAziZ
21-04-2008, 12:24 PM
DBF ليس قواعد بيانات Paradox وانما DBase الشهيرة في الثمانينات على ايام DOS
وجود DBF ليس دليل حتى على استعمال محرك BDE اذ يمكن التعامل مع DBF باستخدام مكونات اخرى

بالنسبة لعدد السجلات والانهاير فهذا راجع للمبرمج وطريقة تصميم قواعده
اعطيك مثال: لدي برنامج تستخدمه جهة حكومية منذ سنة 2001 ولم يحدث به اي مشكل
مع العلم انه يتم اضافة الاف السجلات كل 21 يوم

اخيرا لا نرمي كل مرة اللوم على BDE والعيب فينا

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

مهدي
21-04-2008, 03:49 PM
و عليكم السلام و رحمة الله

لتسريع البحث عليك بتعطيل الكائنات التي تقوم بعرض بيانات القاعدة كـDBEdit1 ... في وقت البحث مثلا

Table1.DisableControls;
أمر البحث
Table1.EnableControls;

أو


Datasource1.Enabled:=False;
أمر البحث
Datasource1.Enabled:=True;

لا شك وأنك تستعمل قاعدة بيانات Paradox
وفي هذه الحالة لامفر من المرور بمحرك BDE الثقيل
وبالنظر إلى العدد الكبير للسجلات، فإنه لا مناص من أن تصادف مشكل البطء
هذا إن لم تصادف إنهيار المشروع فيما بعد
إلى الآن مازالت كودجير متمسكة به في إصدارها الأخير لـ 2007 و أنا إلى الآن لم أجد معه مشاكل إلا مشكل حماية البيانات بكلمة المرور الذي اكتشفته مؤخرا و خطأ سجلات الـBlobs في حالة تغيير المتحوياتها.

adelpro
26-04-2008, 08:07 PM
السلام عليكم
فقط اضافة شيء: لتسريع البحث في قاعدة البيانات لا بد من اضافة دليل وحيد Index وهو الاسلوب الامثل لتسريع قاعدة البيانات

shibahop
30-04-2008, 07:17 PM
اتبع ما نصح به الاخ مهدي
حاول الا تستعمل في مشروعك كائنات DB مثلا استعمل Edit مكان DBNEdit

اذا اردت اخال تسجيلات عن طريق Edit اكتب
table1.fieldbyname('nom').asstring:=edit1.text
او
table1.fieldvalues['nom']:=edit1.text