الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ربط الorderdetails بال Order بس في ال Save فيه سؤال

بدأه BOGY في 21 مايو 2008 · 6 رد · 872 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أولا أحببت أن اوضح اي غموض في السؤال و لكني اريد معرفة هل الحل الذي قمت به صحيح أم معرض لخطأ معين

عندي جدولين

Orders

OrderDetails

تمام ؟؟

وبقوم بعملية الادخال عن طريق جملة SQL

موجوده في StoredProcedure

تفاصيلها :


@OrderDate smalldatetime ,@RequierdDate smalldatetime,@CustomerTypeID int,
@PaymentTypeID int,
@OTSig smallint,@SMSig smallint,@ODSig smallint,@GMSig smallint,@TotalPrice decimal ,@StoreSig smallint
as
insert into Orders(CustomerID,SupplierID,OrderDate,RequierdDate,CustomerTypeID,PaymentTypeId,OT
Sig,SMSig,ODSig,GMSig,TotalPrice,StoreSig)
values (@customerId,@SupplierId,@OrderDate,@RequierdDate,@CustomerTypeID,@PaymentTyp
eID,@OTSig,@SMSig,@ODSig,@GMSig,@TotalPrice,@StoreSig)


</div>
ALTER procedure [dbo].[InsertOrder] @customerId int ,@SupplierId int ,

تمام ؟؟

بس المشكلة في ال OrderDetails

لما بضيف بيانات منتج طبعا لازم آخد رقم ال OrderID

فا قبل ما بضيف في ال Order Details

بعمل Select Max(OrderID) From Orders

و باخد الرقم بتاع الاوردر و ابدأ اضيف في ال Order Details

بس المشكلة الي متوقعها و مش عارف صح ولا لا ؟؟

افرض ان في دلوقتي اكتر من موظف بيعمل اوردر في نفس الوقت فا ممكن الاول ياخد الماكس بتاع التاني و التاني ياخد الماكس بتاع الاول

و بالتالي المنتجات الي في الاوردرات ممكن تتلخبط مع بعضها

فا مش عارف هل جملة الماكس دي صح ولا في طريقة أأمن من كده ؟؟؟

IT'S EASY, IF YOU TRY

#2

يا شباب كل الي انا عايزه بس هل الطريقة الي قمت بيها دي صح ولا لا

و لو لا ايه الطريقة الصح

ولا سؤالي في تعقيدات ولا مش واضح

حد يلاغيني بعد اذنكوا :wacko:

IT'S EASY, IF YOU TRY

#3

السلام عليكم اخي ليش ما تعيد قيمه رقم الفاتوره باستخدام SELECT @@IDENTITY

فيstored procedures وتخلص من الموضوع

#4

ازاي مش فاهم عليك ؟

IT'S EASY, IF YOU TRY

#5

يا بوقي، استعمال الماكس خطأ كبير

خد مثلا مثال

هنالك عدد هائل من المستخدمين ، افترض مثلا 10 مستخدمين في نفس اللحظة

يقوم المستخدم الاول بادخال ال order ، في نفس اللحظة يقوم المستخدم الثاني والثالث بادخال order جديد

يجي المستخدم الاول ، بحفظ ال order_details ، فيحصل ايه ؟؟ يختار الماكس رقم ، وبالتالي الماكس رقم هو تيع المستخدم التالت ، فتتلخبط الداتابيز و تنزل كل ال order details تبع المستخدم التالت

احسن طريقة هي استخدام SELECT @@IDENTITY كما ذكر الاخ Binder

#6

شكرا للاخ binderwesh

على عرض فكرة الحل

و للاخ yasirhantoush

على توضيح فكرة الحل

وجزاكم الله خيراً

بس ممكن مثال للحالة بتاعتي لاني اول مرة اتعامل مع الIDENTITY بصراحة

تم تعديل هذه المشاركة بواسطة BOGY في 25 مايو 2008 في 09:14

IT'S EASY, IF YOU TRY

#7
BOGY كتب:

شكرا للاخ binderwesh

على عرض فكرة الحل

و للاخ yasirhantoush

على توضيح فكرة الحل

وجزاكم الله خيراً

بس ممكن مثال للحالة بتاعتي لاني اول مرة اتعامل مع الIDENTITY بصراحة

ربما الاخ يقصد @scope_idtntity ولكن تبقى مشكلة احتمال فصل الكونكشن من الويب او التراجع عن التخزين هل هناك فكرة لتخزين الاوردر والتفاصيل في ان واحد ؟؟

h_28

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…