طريقة ربط table مع table

اذهب الى الأسفل

طريقة ربط table مع table

مُساهمة  djelal في 23/7/2018, 1:54 pm


طريقة ربط table مع table

لنفرص أن لدينا مجموعة أولى وكل عنصر في أولى له مجموعة من العناصر
الاب وابناؤه مثلا.
ونريد أن نحول هذا الكلام الى قاعدة بيانات ماذا نفعل
ننشئ جدول table الاب ثم جدول table الابناء
لكي اذا تم اختيار أب في الجدول table الاول يتم اختيار ابنائه في الجدول table الثاني
table الاب يجب أن يكون أحد حقوله مفتاحا رئيسيا ، يكون مثلا اسمه num_p
ننشئ مفتاح ثناوي في table الابناء من الاحسن أن يكون بنفس اسم المفتاح الرئيسي في table الاب
لكي يسهل علينا عملية الربط بينهما

ADOTable1num_p=مفتاح رئيسي
ADOTable2num_p=مفتاح ثناوي

نضع فوق الفورم 2 من نوع TADOTable و 2 من نوع TDataSource
و 2 من نوع TDBGrid و 1 من نوع TADOConnection .

طريقة التصميم
نحدد DataSource1
ونذهب الى مفتش الكئنات ومن الخاصية DataSet نختار ADOTable1
نفعل نفس شيء مع DataSource2 نختار ADOTable2.

نحدد ADOConnection1 ومن الخاصية ConnectionString
نضغط فوق نقاط 3 ثم نختار use Connection String نأشر عليها
ثم نضغط فوق build
ثم نحدد من القائمة
Microsoft OLE DB Provider for SQL Server
ثم Suivant.

ثم داخل المربع النص
selectionnez ou tapez un nom de serveur
نحدد او نكتب اسم سيرفر. ثم نأشر على
Utiliser la sécurité intégrée de windows NT
والاختيار الثاني اذا كان هناك كلمة سر طبعا نكتبها واسم المستجدم .
ثم داخل المربع النص
selectionnez la base de données sur le serveur
نحدد او نكتب اسم قاعدة البيانات
ثم Tester la connexion ثم ok ثم ok.
نحدد كامل tables ونسند لهم في الخاصية Connection=ADOConnection1
نحدد ADOTable1 في الخاصية TableName نسند table الاب
ونحدد ADOTable2 في الخاصية TableName نسند table الابناء
-----------------
الربط
نحدد ADOTable2 في الخاصية MasterSource نسند DataSource1
في الخاصية MasterFields نضغط فوق نقاط 3
في Detail Fields نحدد الحقل المشترك num_p
وفي Master Fields نحدد الحقل المشترك num_p
ثم Add
نراهما في Joined Fields هكذا
num_p->num_p
ثم OK
----
الربط برمجيا

procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.Connected := false;
ADOConnection1
.
ConnectionString := 'Provider=SQLOLEDB.1;'+
'Integrated Security=SSPI;'+
'Persist Security Info=False;'+
'Initial Catalog=Lookup1;'+
'Data Source=.\SQLEXPRESS';

ADOTable1.Connection := ADOConnection1;
ADOTable2.Connection := ADOConnection1;
ADOTable1.TableName := 'lab';
ADOTable2.TableName := 'weled';
DataSource1.DataSet := ADOTable1;
DataSource2.DataSet := ADOTable2;
ADOConnection1.LoginPrompt := false;
ADOConnection1.Connected := true;
ADOTable2.MasterSource := DataSource1;
ADOTable2.MasterFields := 'num_p';
ADOTable1.Open;
ADOTable2.Open;
end;

==========

ليس ضروريا وضع مفاتيح أو الربط في برامج قواعد البيانات ك paradox و access و sql server و غيره
في حالة كهذه لكن نستطيع وضع مفاتيح أو الربط.
ولكن بنسب لدلفي يجب الربط سوى كان الحقول لها مفاتيح ام لا
حتى نحصل على النتيجة المطلوبة

djelal
مبرمج

عدد المساهمات : 54
تاريخ التسجيل : 29/04/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى