06-08-2010, 03:15 PM
السلام عليكم
لدي الجدولين
أضع في الأول الأصناف الموجودة وفي الثاني المواد المخزنة في المستودع
وبنهما علاقة one-to-many حيث أن الحقل Cat_ID هو مفتاح رئيس في الجدول الأول ومفتاح أجنبي FK في الجدول الثاني
ربطت الجدولين بمكون ADOQuery بعبارة SQL التالية
من أجل إظهار المواد وأصنافها ضمن DBGrid
فوجئت أنني عندما استعمل الدالة Insert بالشكل التالي
فإن الدالة تضيف حقلا جديدا في كل من الجدوليبن المربوطين
مع أنني أردت أن تضيف في الجدول الذي يحوي FK بالاعتماد على جدول الأصناف
وكذلك الأمر بالنسبة للدالة Delete
فكما ذكرت في المثال فلو أن لدي علبة منظفات أردت أن أحذفها لحذف أيضا الصنف منظفات من جدول الأصناف
إخوتي هل لهذه المشكلة حل أم أنني مخطئ في الطريقة أصلا
لدي الجدولين
كود :
Categories(Cat_ID; Cat_Name)
Articles(Art_ID; Art_Name; Cat_ID.....)أضع في الأول الأصناف الموجودة وفي الثاني المواد المخزنة في المستودع
وبنهما علاقة one-to-many حيث أن الحقل Cat_ID هو مفتاح رئيس في الجدول الأول ومفتاح أجنبي FK في الجدول الثاني
ربطت الجدولين بمكون ADOQuery بعبارة SQL التالية
كود :
SELECT * FROM Categories INNER JOIN Articles ON Categories.Cat_ID=Articles.Cat_IDمن أجل إظهار المواد وأصنافها ضمن DBGrid
فوجئت أنني عندما استعمل الدالة Insert بالشكل التالي
كود :
ADOQuery1.Insert;
ADOQuery1.Post;فإن الدالة تضيف حقلا جديدا في كل من الجدوليبن المربوطين
مع أنني أردت أن تضيف في الجدول الذي يحوي FK بالاعتماد على جدول الأصناف
وكذلك الأمر بالنسبة للدالة Delete
فكما ذكرت في المثال فلو أن لدي علبة منظفات أردت أن أحذفها لحذف أيضا الصنف منظفات من جدول الأصناف
إخوتي هل لهذه المشكلة حل أم أنني مخطئ في الطريقة أصلا

