المشاركات : 58
المواضيع 7
:
: 0
الإنتساب : Mar 2009
السلام عليكم
عند انشاء فاتورة وفي حقل المادة عادة تستدعى هذه المادة من جدول آخر (جدول المواد)
ولكن هناك مشكلة إذا قمنا بحفظ المادة كأسم (فماذا يحدث إذا اراد المستخدم تغيير اسم هذه المادة في جدول المواد)
الحل عادة باستخدام الـguid لهذه المادة وحفظه بدل الاسم.
سؤالي إذا قمت بتخزين الـguid في الفاتورة كيف استطيع عند عرضها استبدله باسم المادة الخاصة بهذا الـguid - ماهي الطريقة الافضل في مثل هذا الحالة ؟؟؟
(مع العلم أنه ليس من المنطق حفظ الـguid و الاسم في جدول الفاتورة وعند كل عملية استعراض نقوم بمطابقة الـguid من جدول المواد)
ولكم الشكر
المشاركات : 15
المواضيع 5
:
: 0
الإنتساب : Mar 2011
أخي اذا غير اسم المادة غير المهم المهم هو رقم المادة للأن الجدوال تعرف عن طريق الرقم
و شكرا
المشاركات : 58
المواضيع 7
:
: 0
الإنتساب : Mar 2009
صحيح أخي،
وهذا ماقلته أنا ولكنك لم تقرأ سؤالي جيداً
المشاركات : 842
المواضيع 49
:
: 65
الإنتساب : Jun 2010
و عليكم السلام و رحمة الله
إقتباس : الحل عادة باستخدام الـguid لهذه المادة وحفظه بدل الاسم.
تقصد مفتاح خارجي foreign key و يكون Primary Key في جدول المواد ؟ أو
كود :
http://en.wikipedia.org/wiki/Globally_unique_identifier
؟؟
إقتباس : سؤالي إذا قمت بتخزين الـguid في الفاتورة كيف استطيع عند عرضها استبدله باسم المادة الخاصة بهذا الـguid - ماهي الطريقة الافضل في مثل هذا الحالة ؟؟؟
بإستخدام الـ Lookup
http://www.delphi4arab.net/forum/showpos...stcount=12
أو SQL بالربط الداخلي ، راجع
http://www.delphi4arab.net/forum/showpos...ostcount=7
بالتوفيق
المشاركات : 58
المواضيع 7
:
: 0
الإنتساب : Mar 2009
السلام عليكم
شكراً أخي Lam.Abdeldjalil
إقتباس :تقصد مفتاح خارجي foreign key و يكون Primary Key في جدول المواد ؟ أو
قصدي عند ادخال بيانات فاتورة وتحديد المادة سوف اقوم بتخزين الـGUID الخاص بهذه المادة وليس اسم المادة
أما عن استخدام الـ Lookup لا أعتقد أنه سوف يفي بالغرض
لو أن مكونات الفاتورة معروضة في DBGrid
قد يكون هناك حل باستخدام الـSQL ولكن لم استطع معرفته إلى الآن
أستطيع أن أقوم بعرض الفاتورة من Query بدلاً من عرضها من الجدول الخاص بها
وفي هذا الـ Query أقوم بعرض القيمة المقابلة للـGUID الخاص بالمادة
ولكن في هذه الحالة لن يستطيع المستخدم اجراء أي تعديل على هذه الفاتورة!!
فما رأيك؟
المشاركات : 58
المواضيع 7
:
: 0
الإنتساب : Mar 2009
السلام عليكم
لقد قمت بعرض بيانات الفاتورة كما ذكرت سابقاً عن طريق الـQuery
وكان هناك خطا يمنع المستخدم من التعديل. بسبب عدم إضافة الـGUID الخاص بكل بند من الفاتورة الى الـQuery
قمت بتصحيح الخطأ وكل شيء يعمل حيداً
ومع ذلك إذا كان لديك فكرة أفضل أطلعني عليها.
شكراً لك Lam.Abdeldjalil
المشاركات : 842
المواضيع 49
:
: 65
الإنتساب : Jun 2010
إقتباس :أما عن استخدام الـ Lookup لا أعتقد أنه سوف يفي بالغرض
لم لا ؟
إقتباس :ولكن في هذه الحالة لن يستطيع المستخدم اجراء أي تعديل على هذه الفاتورة!!
فما رأيك؟
لنأخذ الإستعلام
كود :
select orders.*,employees.LastName
from orders inner join employees on orders.EmployeeID =employees.EmployeeID
على سبيل المثال في الـ ADO يمكنك التعديل في حقول الجدول orders و لا يمكنك التعديل في حقول الجدول المربوط employees تواجهك رسالة
إقتباس : Insufficient key column information for updatin or refreshing
وهو المطلوب ، فما عليك إلا جعل الحقل LastName ـ ReadOnly إذا كنت تستخدم DBContols
لا أظن هذه الخاصية متوفر في الـ BDE
بالتوفيق
المشاركات : 15
المواضيع 5
:
: 0
الإنتساب : Mar 2011
لم افهم جيدا و لكن هل تريد قول جلب guid ل مادة معينة و هذه المادة موجودة في dbgrid
المشاركات : 58
المواضيع 7
:
: 0
الإنتساب : Mar 2009
السلام عليكم
إقتباس :وهو المطلوب ، فما عليك إلا جعل الحقل LastName ـ ReadOnly إذا كنت تستخدم DBContols
لا أظن هذه الخاصية متوفر في الـ BDE
لحد الآن كل شيء جيد
ولكن ماذا إذا أراد المستخدم تغيير الصنف ؟
ليس من الجيد اظهار نافذة جديدة للتعديل وطالما هو يستعرض الفاتورة في DBGrid فمن الانسب أن تكون امكانية التعديل بنفس الشاشة !!!
ولك الشكر
المشاركات : 842
المواضيع 49
:
: 65
الإنتساب : Jun 2010
و عليكم السلام
إقتباس : ولكن ماذا إذا أراد المستخدم تغيير الصنف ؟
ألم تذكر في البداية
إقتباس : ولكن هناك مشكلة إذا قمنا بحفظ المادة كأسم (فماذا يحدث إذا اراد المستخدم تغيير اسم هذه المادة في جدول المواد)
؟؟ ( أي تغير إسم المادة في جدول المواد من DBGrid تفاصيل الفاتورة ؟؟)