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

كيفية معالجة اضافة رقم مسلسل اذا كان هناك 4 مستخدمين؟؟

مغلق
بدأه ابو اسماء في 22 مارس 2001 · 6 رد · 1,181 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة الكرام ،

انا الان بصدد وضع اللمسات الاخيرة على برنامج تسجيل الحضور للجمعية العمومية الخاصة بالبنك الذي اعمل فيه ، وسيستخدمه 4 مستخدمين في نهاية الشهر .

وقد جرت العادة في برامجي ان اخصص رقم مسلسل لكل قيد ، بحيث ابحث عن اكبر رقم مسلسل واضيف عليه 1 . فلو كان اخر رقم 121 فانه عند الضغط على زر جديد ادخل رقم 122 على خانة المسلسل .

الان في حال وجود عدة مستخدمين فانهم عند الضغط على زر جديد فانهم جميعا سيظهر لديهم رقم 122 في خانة المسلسل واذا قاموا بالحفظ فلن يسمح البرنامج بذلك لان المسلسل هو primary key .

فما الحل ؟؟

احد الحلول التي اتبعتها انني وان ظهر للمستخدم رقم 122 فانه عند الضقط على زر الحفظ سيقرأ الملف ويحصل على اعلى رقم واذا كان احد المستخدمين قد سبق باستخدام رقم 122 فانه ستم اضافة 1 ليصبح مسلسل الحفظ هو 123 بدل 122 وهكذا .

اشعر ان هذا الحل ليس عمليا فهل من بديل ، او من نصيحة خاصة بادخال البيانات من عدة مستخدمين وخاصة اوامر editlock, pesimesticLock,editMode, .. الخ .

#2

الأخ العزيز ابو أسماء ...

كيف حالك ؟

اذا لم يكن الترتيب مهما:

افتح الجدول في وضع التصميم ،

غير خصائص الترقيم التلقائي -- الأرقام الجديده -- الى عشوائي .

ابو أسماء هل تشرح لي مواصفات الأجهزه وأنظمة التشغيل لديك وما نوع الشبكه ؟ وكيف ركبت قاعدة البيانات في كل جهاز بالتفصيل ؟

انا ضعيف في الشبكات بصراحه .. وأتمنى أن أستفيد من تجربتك .

#3

الأخ أبو أسماء

هناك دالة dlookup يمكنك وضعها فى حقل رقم القيد قبل التحديث تقوم الدالة بفحص حقل رقم القيد من الجدول الأصلى ويمكن وضع رسالة تفيد بأن رقم القيد هذا مكرر عند إدخاله من أي شاشه أي إذا دخل الرقم 122 من الشاشة رقم (1) فإنه يحفظ تلقائيا فى الجدول وعند ضغط الشاشة الثانية لرقم القيد فإن هذه الداله تقوم بالفحص وإذا وجدت الرقم مكرر تظهر رسالة التكرار تلقائيا وهكذا وأيضا هناك requiry على نفس الحقل لضمان ظهور الأرقام الجديدة تلقائيا.

والله الموفق

أشرف

#4

ماهي قاعدة البيانات التي تستخدمها!

لماذا لا تضع الحقل كـ(AutoIncrement Field).

على العموم اذا كانت قاعدة البيانات التي تستخمدمها لا تدعم التعدد التلقائي يمكنك وضع Trigger للـ(Insert)

او تستطيع ان تعمل Lock على الحقل قبل الاضافة.

#5

الاخ ابو لمى ، الاخوة الكرام ،

اليكم الخطوات التي اتبعتها في الشبكة التي قمت بها :

1) جميع الاجهزة عليها win95 ، اي ان الحالة هنا ليست client/server بل تسمى fileserver ، والطريقة الاولى هي الاكثر فاعلية ، ولكن حيث ان البرنامج لن يتم استخدامه الا في ايام اجتماع الجمعية العمومية ففد لجأت الى الطريقة الاسهل حيث يشترط في الاولى توافر WindowsNT في الجهاز الذي يحوي البيانات .

2) بعد ان انتهيت من البرنامج قمت بفصل الجداول SplitTables في جدول اخر وسميت الاول SharesSys والثاني SharesData .

3) بعد ذلك عملت Link بين SharesSys وجدوال SharesData وبذلك يتم الادخال في SharesSys والحفظ في SharesData .

الان وبعد وصل الاجهزة الاربعة عن طريق Hub هناك خياران:

1) اما عمل ShortCut للبرنامج الرئيسي SharesSys الى جميع الاجهزة الاربعة .

2) او نسخ SharesSys كاملا على كل جهاز .

كلا الطريقتين تعمل ولكن الاسهل هي الاولى والافضل اداء هي الثانية .

الان جميع الاجهزة فيها SharesSys ومرتبطة جميعها بالجداول في SharesData .

هناك حالتين لفتح قاعدة البيانات :

1) اما Shared

2) او Exclusive

وطبعا يجب ان تكون SharesData في وضع Shared .

وان شاء الله ارسل لكم البرنامج حين تمامه والانتهاء من هم الاجتماع ومفاجآته . ولاتنسونا من الدعاء .

#6

السلام عليكم .

اخي واجهتني نفس المشكلة سابقاً .

لكن حطيت مفتاح اساسي للرقم

وعندما يحفظ المستخدم

كتبت كود اذا ظهر الخطارقم .... (رقم خطأ تكرار المفتاح)

يعمل استدعاء للدالة التي لها وظيفة اعطاء رقم جديد .

وانحلت المشكلة.

حيث إذا تكرر بنفس الوقت يعطي رقم بعده مباشرتاً

#7

اخي محمد ،

جزاك الله خيرا ، يظهر لي ان هذه هي الطريقة المثلى حتى الان وسابقي عليها ، خاصة وان كل التجارب كانت ناجحة والحمد لله .

هذا الموضوع مغلق.

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

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

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

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

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