delphi4arab منتديات دلفي للعرب
ربط combobox - نسخة قابلة للطباعة

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



ربط combobox - maxmank100 - 25-07-2013

السلام عليكم اخواني
عندي جدولين مدن ودول والعلاقة واحد الى متعدد استخدم الروسيجر التالي
ALTER Procedure [dbo].[CheckCity]
@countryid int
As

Select city.city_id, city.city_name,country.country_name

From
City inner join Country
on city.country_id=country.country_id
where country.country_id=@countryid

يطلب مني قيمة @countryid وينفذ دون اخطاء
في واجهة دلفي قمت بربط هذا البروسيجر ويعرض البيانات في combobox
سؤالي : كيف احدد country_id من كمبوبوكس الدول حتى اقارنه مع الباراميتر @countryid
مع العلم ان كمبوبوكس الدول يعرض اسماء الدول ولكن لو عرض id لا يوجد مشكلة
المشكلة اني لا استطيع ان اجلب قيمة country_id الحالية اذا استخدمت اسم الدول في الكمبوبوكس


ربط combobox - maxmank100 - 25-07-2013

يعني انا استخدم التالي
data.SP_City.Parameters.ParamByName('@countryid').Value := country.ItemIndex;
لكن هدا ياخذ مكان اسم الدولة في الكمبوبوكس ولا ياخذ رقم الدولة في جدول الدول
مثال مصر رقمها مخزن في جدول الدول 212 وهو نفسه في جدول المدن لاني عامل ربط بينهم


ربط combobox - بن دهيبة - 25-07-2013

وعليكم السلام ورحمة الله تعالى وبركاته.

ربما تقصد:

كود :
data.SP_City.Parameters.ParamByName('@countryid'). Value := country.Text;

أو:

كود :
data.SP_City.Parameters.ParamByName('@countryid'). Value :=strtoint(country.Text);



ربط combobox - maxmank100 - 25-07-2013

اخي الكريم جزاك الله خير ولكن لم اقصد هذا ابداً
المشكلة عندي هي ان لدي جدولين واحد للدول واخر للمدن وكل واحد منهما يحتوي على country_id لتتم عملية الربط.
كل ما ابحث عنه طريقة برمجية لربط عنصري combobox عند اختيار مصر مثلا تظهر في كمبوبوكس المدن فقط المدن المصري كالقاهرة والاسكندرية وهكذا ويجب ان تكون عملية الربط برمجيا باستخدام stored procedure


ربط combobox - maxmank100 - 26-07-2013

الحمد لله وجدت الحل وهوا كالتالي
كود :
procedure Tfcity.CountryChange(Sender: TObject); begin inherited; data.SP_City.Parameters.ParamByName('@countryname').Value :=(country.Text) ; Thelper.fillcombobox(city,data.SP_City,'city_name'); end;