delphi4arab منتديات دلفي للعرب
تخزين guid وعرض القيمة المقابلة له - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : تخزين guid وعرض القيمة المقابلة له (/showthread.php?tid=4727)

الصفحات: 1 2


تخزين guid وعرض القيمة المقابلة له - m.rabee - 17-11-2012

السلام عليكم
عند انشاء فاتورة وفي حقل المادة عادة تستدعى هذه المادة من جدول آخر (جدول المواد)
ولكن هناك مشكلة إذا قمنا بحفظ المادة كأسم (فماذا يحدث إذا اراد المستخدم تغيير اسم هذه المادة في جدول المواد)
الحل عادة باستخدام الـguid لهذه المادة وحفظه بدل الاسم.

سؤالي إذا قمت بتخزين الـguid في الفاتورة كيف استطيع عند عرضها استبدله باسم المادة الخاصة بهذا الـguid - ماهي الطريقة الافضل في مثل هذا الحالة ؟؟؟
(مع العلم أنه ليس من المنطق حفظ الـguid و الاسم في جدول الفاتورة وعند كل عملية استعراض نقوم بمطابقة الـguid من جدول المواد)
ولكم الشكر


تخزين guid وعرض القيمة المقابلة له - forzablida - 17-11-2012

أخي اذا غير اسم المادة غير المهم المهم هو رقم المادة للأن الجدوال تعرف عن طريق الرقم

و شكرا


تخزين guid وعرض القيمة المقابلة له - m.rabee - 17-11-2012

صحيح أخي،
وهذا ماقلته أنا ولكنك لم تقرأ سؤالي جيداً


تخزين guid وعرض القيمة المقابلة له - Lam.Abdeldjalil - 17-11-2012

و عليكم السلام و رحمة الله

إقتباس : الحل عادة باستخدام الـguid لهذه المادة وحفظه بدل الاسم.
تقصد مفتاح خارجي foreign key و يكون Primary Key في جدول المواد ؟ أو
كود :
http://en.wikipedia.org/wiki/Globally_unique_identifier
؟؟
إقتباس : سؤالي إذا قمت بتخزين الـguid في الفاتورة كيف استطيع عند عرضها استبدله باسم المادة الخاصة بهذا الـguid - ماهي الطريقة الافضل في مثل هذا الحالة ؟؟؟
بإستخدام الـ Lookup
http://www.delphi4arab.net/forum/showpost.php?p=22197&postcount=12

أو SQL بالربط الداخلي ، راجع
http://www.delphi4arab.net/forum/showpost.php?p=20932&postcount=7

بالتوفيق


تخزين guid وعرض القيمة المقابلة له - m.rabee - 17-11-2012

السلام عليكم

شكراً أخي Lam.Abdeldjalil

إقتباس :تقصد مفتاح خارجي foreign key و يكون Primary Key في جدول المواد ؟ أو

قصدي عند ادخال بيانات فاتورة وتحديد المادة سوف اقوم بتخزين الـGUID الخاص بهذه المادة وليس اسم المادة

أما عن استخدام الـ Lookup لا أعتقد أنه سوف يفي بالغرض

لو أن مكونات الفاتورة معروضة في DBGrid
قد يكون هناك حل باستخدام الـSQL ولكن لم استطع معرفته إلى الآن

أستطيع أن أقوم بعرض الفاتورة من Query بدلاً من عرضها من الجدول الخاص بها
وفي هذا الـ Query أقوم بعرض القيمة المقابلة للـGUID الخاص بالمادة
ولكن في هذه الحالة لن يستطيع المستخدم اجراء أي تعديل على هذه الفاتورة!!
فما رأيك؟


تخزين guid وعرض القيمة المقابلة له - m.rabee - 17-11-2012

السلام عليكم

لقد قمت بعرض بيانات الفاتورة كما ذكرت سابقاً عن طريق الـQuery
وكان هناك خطا يمنع المستخدم من التعديل. بسبب عدم إضافة الـGUID الخاص بكل بند من الفاتورة الى الـQuery
قمت بتصحيح الخطأ وكل شيء يعمل حيداً

ومع ذلك إذا كان لديك فكرة أفضل أطلعني عليها.

شكراً لك Lam.Abdeldjalil


تخزين guid وعرض القيمة المقابلة له - Lam.Abdeldjalil - 17-11-2012

إقتباس :أما عن استخدام الـ 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

بالتوفيق


تخزين guid وعرض القيمة المقابلة له - forzablida - 17-11-2012

لم افهم جيدا و لكن هل تريد قول جلب guid ل مادة معينة و هذه المادة موجودة في dbgrid


تخزين guid وعرض القيمة المقابلة له - m.rabee - 18-11-2012

السلام عليكم
إقتباس :وهو المطلوب ، فما عليك إلا جعل الحقل LastName ـ ReadOnly إذا كنت تستخدم DBContols
لا أظن هذه الخاصية متوفر في الـ BDE

لحد الآن كل شيء جيد
ولكن ماذا إذا أراد المستخدم تغيير الصنف ؟
ليس من الجيد اظهار نافذة جديدة للتعديل وطالما هو يستعرض الفاتورة في DBGrid فمن الانسب أن تكون امكانية التعديل بنفس الشاشة !!!

ولك الشكر


تخزين guid وعرض القيمة المقابلة له - Lam.Abdeldjalil - 18-11-2012

و عليكم السلام
إقتباس : ولكن ماذا إذا أراد المستخدم تغيير الصنف ؟
ألم تذكر في البداية
إقتباس : ولكن هناك مشكلة إذا قمنا بحفظ المادة كأسم (فماذا يحدث إذا اراد المستخدم تغيير اسم هذه المادة في جدول المواد)
؟؟ ( أي تغير إسم المادة في جدول المواد من DBGrid تفاصيل الفاتورة ؟؟)