سؤال عن DBGrid
سلام عليك
يتوجب عليك أولا أن تنشئ جدولين الأول للجنس فيه حقلان الأول رقم الجنس والثاني لبيان نوع الجنس هل هو ذكر أو أنثى على هذه الطريقة
CREATE TABLE sex( id smallint primary key, sex varchar(20));
ثم تنشئ جدولا آخر هو الجدول الذي ذكرته (الرقم والجنس والجنسية...) وقبل أن تغلق القوس وتضغط على زر تنفيذ الكود أضف
CONSTRAINT constraint_name FOREIGN KEY (id_sex) REFERENCES sex (id),
الآن عند الاستعلام قم بالربط بين هذا الجدول والجدول الأول (الجنس)
مثال (نفرض أن الجدول الثاني يسمى info)
select info.id,sex.sex where info.sex=sex.id from info,sex
أرجو أن تكون الفكرة وضحت
(الباحثون عن المواقع الإباحية سيصابون بخيبة أمل عندما يقودهم محرك البحث إلى هذا الموضوع :D )
تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 5 فبراير 2013 في 19:06
إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة
فما أحوجني إلى دعوة صالحة من أخ لي كريم
أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز
أخي الفاضل احمد بارك الله فيك على الرد
كنت اضيف في الحقل قيمة ItemIndex للــ ComboBox ولم أقم بعمل جدول لأني لا استخدمها إلا للجنس والجنسية فإذا كان لا يوجد طريقة الا بعمل جدول يقرأ منه فأأمل من سيادتك إفادتي علماً بأن قاعدة البيانات اكسس ، بدلفي 7 ..
وبارك الله فيك ،،
كما أأمل الإجابة عن السؤال الثاني إن أمكن
سلام عليك
لا يمكن عمل ذلك إلا بالطريقة التي ذكرت لك وهذا غاية علمي وإليه أنتهي فإن رأى أحد الإخوة غير ذلك فهو علم واسع لا ساحل له
أنا لا أتعامل مع الدالفي ولا مع الأكسس ، فكما ترى عن اليمين انا لينكساوي وإنما اقيس الأمور ببعضها وأعطيك الفكرة حتى تكمل الطريق
نصيحة : كنت يوما أحب أن أتعامل مع قواعد البيانات من خلال أسئلة أطرحها في المنتديات أو تتبع دروس هنا وهناك ، ثم تبين لي أني أعبث ، فتوقفت عن دراسة اللغة O-pascal واتجهت إلى دراسة SQL حتى ظننت أني قد وفيت بأغلبها ، فعليك أنت أن تسلك هذا الطريق وإلا بقيت في الغارقات غرقا
الجواب الذي كتبته لك سابقا هو مجردد اساسيات في sql فلو كنت على علم بها فهمت مقصودي بسرعة
ملخص الجواب أنه يتم الربط بين جدولين عن طريق حقلين، في كل جدول حقل ، الحقل الأول أساسي في جدول sex والحقل الثاني غريب foreign key في جدول info بالطريقة التي ذكرت لك ، ويحدث الربط بين الجدولين عند طلب الاستعلام بالأمر select كما بينت لك
بالنسبة للسؤال الثاني فهو سهل بسيط ، يتم التحقق عند إدخال قيمة الطلب ومقارنتها بالحقل الرابع
يتم استجلاب قيمة الحقل الرابع بالطريقة التالية
var x:integer;
....
x:=DBGrid1.Datasource.DataSet.FieldByName('id').AsString;حيث id هو الحقل الرابع
تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 6 فبراير 2013 في 11:25
إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة
فما أحوجني إلى دعوة صالحة من أخ لي كريم
أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز
كحل اخر بدون اجراء اي تعديل في قاعدة البيانات
في الحدث onDrawColumnCell للDBGrid
اكتب هذا الكود
TTimeField(travel.FieldByName('time')).Displayformat:='hh:mm AM/PM';السلام عليكم...
في حالة حقل الجنس فإن الأمر بسيط لأن عدد القيم محدود (فقط ذكر أو أنثى)، و بالتالي يمكن استعمال الحدث OnGetText للحقل (في المكون TADOQuery أو TADOTable).
نفرض أن المكون هو ADOQuery1 و أن اسم الحقل هو Gender. بعد إضافة كل الحقول إلى ADOQuery1 (بالنقر المزدوج عليه) نحدد الحقل Gender ثم نختار الحدث OnGetText و نكتب الكود التالي:
procedure TForm1.ADOQuery1GenderGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
if Sender.IsNull then
Text := ''
else if Sender.AsInteger = 1 then
Text := 'أنثى'
else
Text := 'ذكر';
end;
أما بالنسبة إلى الجنسيات فإنها - حسب ما أعتقد - ستكون كثيرة و غير محصورة و بالتالي فمن الأفضل إنشاء جدول للجنسيات و ربطه مع جدولك عن طرق استعلام (Query). مثلاً جدول الجنسيات اسمه Nats و به الحقلان NatID (رقم الجنسية) و NatName (اسم الجنسية):
SELECT Info.*, Nats.NatName FROM info INNER JOIN Nats ON Info.NatID = Nats.NatID
حيث Info اسم الجدول لديك، و Nats.NatID يشير إلى حقل رقم الجنسية في جدول الجنسيات و Info.NatID يشير إلى حقل رقم الجنسية في جدولك. لا يشترط في الحقلين الخاصين برقم الجنسية أن يكون اسماهما متطابقين في الجدولين، و لكن يجب أن يكونا من نفس النوع.
( الأخ أحمد أبو عبد البر: يمكنك استعمال Gender بدل ceks :D )
نرجو الاستفادة و السلام.
وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ
صدق الله العظيم
اقتباس( الأخ أحمد أبو عبد البر: يمكنك استعمال Gender بدل ceks :D )
عليك السلام ناجي
لم أفهم أقصدك
إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة
فما أحوجني إلى دعوة صالحة من أخ لي كريم
أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز
السلام عليكم ورحمة الله
بارك الله فيكم ونفع الله بكم وجزاكم خيراً على ردودكم وتوضيحاتكم .
سؤال للأخوة
هل يمكنني أن أقوم بإدراج داخل الـ Dbgrid حقول من اكثر من جدول أي لدي جدولين أريد أضافة الحقل الأول من جدول1 والحقل الثاني من الجدول 2 والجدولين علاقة واحد لواحد ، فإذا لا يمكن أأمل من اخواني أن يدلوني على أداة أخرى تؤدي الغرض
وبارك الله فيكم
