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

نسخة كاملة : ربط combobox
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم اخواني
عندي جدولين مدن ودول والعلاقة واحد الى متعدد استخدم الروسيجر التالي
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 الحالية اذا استخدمت اسم الدول في الكمبوبوكس
يعني انا استخدم التالي
data.SP_City.Parameters.ParamByName('@countryid').Value := country.ItemIndex;
لكن هدا ياخذ مكان اسم الدولة في الكمبوبوكس ولا ياخذ رقم الدولة في جدول الدول
مثال مصر رقمها مخزن في جدول الدول 212 وهو نفسه في جدول المدن لاني عامل ربط بينهم
وعليكم السلام ورحمة الله تعالى وبركاته.

ربما تقصد:

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

أو:

كود :
data.SP_City.Parameters.ParamByName('@countryid'). Value :=strtoint(country.Text);
اخي الكريم جزاك الله خير ولكن لم اقصد هذا ابداً
المشكلة عندي هي ان لدي جدولين واحد للدول واخر للمدن وكل واحد منهما يحتوي على country_id لتتم عملية الربط.
كل ما ابحث عنه طريقة برمجية لربط عنصري combobox عند اختيار مصر مثلا تظهر في كمبوبوكس المدن فقط المدن المصري كالقاهرة والاسكندرية وهكذا ويجب ان تكون عملية الربط برمجيا باستخدام stored procedure
الحمد لله وجدت الحل وهوا كالتالي
كود :
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;