delphi4arab منتديات دلفي للعرب
البحث في قاعده البيانات بواسطه listbox - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : البحث في قاعده البيانات بواسطه listbox (/showthread.php?tid=2570)



البحث في قاعده البيانات بواسطه listbox - محمد الدرة - 16-11-2010

بسم الله الرحمن الرحيم

وعيدكم مبارك ان شاء الله

توضيح مشكلتي

اعمل على برنامج دليل هاتف فيه العديد من الاسماء وقمت بعمل زر بحث عن اسم معين ويتم عرض هذه الاسماء في listbox

اردت ان اربط ال listbox بقاعده البيانات عبر منهج locate

تم الربط واشتغل البرنامج تمام

المشكله

عند تشابه اسمين اوا كثر يقوم listbox بالارتباط باسم واحد فقط حتى وان كانت مختلفه

وهذه الصور للتوضيح






[صورة: 11890278.png]






[صورة: 61856267.png]


المشكله الثانيه

عدد السجلات في هذا البرنامج 600000 سجل
عند الربط بـ listbox

يتاخر البرنامج وقتاً من الزمن حتى يتم الربط واظهار البيانات

هل هناك طريقه افضل


السورس في المرفقات

ولكم جزيل الشكر



البحث في قاعده البيانات بواسطه listbox - محمد عبد العزيز - 20-11-2010


السلام عليكم ورحمة الله
ان كنت تتوقع اكثر من سجل استخدم طريقة بحث اخرى غير locate



البحث في قاعده البيانات بواسطه listbox - hanipino - 20-11-2010

السلام عليكم

بما ان adoquery1 يبقى مفتوح بعد عمليت الفلترة ونقل البينات منه الى listbox1
لا داعى لعملية البحث فى adoquery1 المفلتر . ... يكفى تغير مؤشره فقط .
مثلا فى حدث الضغط على listbox1
PHP كود :
adoquery1.RecNo := listbox1.ItemIndex + 1; 



البحث في قاعده البيانات بواسطه listbox - محمد الدرة - 21-11-2010

مشكورين على مروركملكن كل الحلول لم تنفع ساوضح مشكلتي

نفرض اني اعرض جميع الاسماء في listbox
وقد يتشابه اسمين ويظهران في listbox
كيف عندما اعمل ربط بين listbox وقاعده البيانات يستطيع التمييز بين الاسم الاول والثاني
مثلا محمد محمد
الاسم الثاني محمد محمد
كيف يستطيع التفريق بين الاول والثاني
من خلال بحثي سمعت ان مكون dblookuplistbox
يقوم باظهار نتائج معينه ويقوم بتخزين قين اخرى لكني لم استطع اظهار اي شي فيه مع اني بحثت في هذا المنتدى ووجدت الكود الا انه لم ينفع معي
ولكم جزيل الشكر


البحث في قاعده البيانات بواسطه listbox - kachwahed - 21-11-2010

السلام عليكم ورحمة الله
لم أتمكن من مراجعة المرفق لعدم ظهور حروف اللغة العربية!
استبدل السطر:
كود :
listbox1.Items.Add(adoquery1.Fields[3].asstring);
بـ:
كود :
listbox1.Items.AddObject(adoquery1.Fields[3].asstring, TObject(ADOQuery1.FieldByName('r').AsInteger));

و السطر:
كود :
if adoquery1.Locate('name',listbox1.Items[listbox1.ItemIndex],[]) then
بـ:
كود :
if adoquery1.Locate('r',Integer(listbox1.Items.Objects[listbox1.ItemIndex]),[]) then
لا أنصحك بهذه الطريقة.
استخدم المكونات الافتراضية (TDBGrid, TDBListBox...)
ملاحظات أخرى:
- البحث يتم مرتين مما يثقل العملية، ومع عدد كبير من السجلات تزيد المشكلة...
- استخدم TRadioGroup عوض مجموعة من الـ TRadioButton
- يبنبغي أن يكون للجدول مفتاح على الأقل
...
بالتوفيق.



البحث في قاعده البيانات بواسطه listbox - محمد الدرة - 23-11-2010

السلام عليكم

اشكركم جميعاً

تم حل مشكلتي

الاخ kachwahed

حلت كان الافضل لك جزيل الشكر

عندي استفسار بسيط

لو كانت البيانات تظهر في treeview ومثلاً النتائج تظهر في الفروع كبف اقوم بنفس الامر

للتوضيح اكثر


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

هذه صورته


[صورة: 34715543.jpg]

كما تلاحظون انه في كل موضوع يوجد عده اكواد في برنامجي جعلت البرنامج لايقبل الاكواد المكرره بسبب مشكله الارتباط

لانه عند تشابه كودين يتم الارتباط بواحد فقط


علماً بان الارتباط يتم في الفروع

فكيف اقوم بعمل الفكره السابقه في treeview

لانه عند اضافه فروع في treeview نقوم بكتابه الامر
PHP كود :
treeview.items.addchiled() 


فكيف اقوم بنفس الامر بواسطه object
,ولكم جزيل الشكر