برنامج دلفي تسيير المخزون قاعدة بياناته من نوع اكسس يعمل على شبكة محلية
#1
السلام عليكم
لدي استفسار فقط قمت ببرمجة برنامج تسيير المخزون قاعدة بياناته من نوع اكسس
وأردت أن أجعله يعمل على شبكة محلية فهل هدا ممكن وكيف ؟
الرد
#2
السلام عليكم و رحمة الله و بركاته
أخي الكريم كنت على صدد طرح هذا الموضوع
و بالمناسبة :
البرامج في الشبكة تنقسم الى ثلاث مراحل .
1 - اختيار قاعدة البيانات . و لنفرض ان عدد المستخدمين أقل من 10 ولنختار قاعدة البيانات اكسس مثلا
2- الربط مع قاعدة البيانات . استخدمت كائن ADOconection و تم الاتصال بقاعدة البيانات بنجاح
3- التعامل مع البيانات و هنا مشكلتي ؟
السؤال هو : هل اتعامل عادي مع البيانات و بعدها يكفي نسخ التطبيق على بقية الاجهزة -عميل-
الرد
#3
وعليكم السلام ورحمة الله
إقتباس : يعمل على شبكة محلية فهل هدا ممكن وكيف ؟
نعم ممكن
تضع ملف قاعدة البيانات بمجلد مشترك بجهاز ما
ببرنامجك تغير ما يلزم (وهذا متعلق بمنطق برنامجك وكيف يعمل)
الحقيقة في برامج قواعد البيانات التي تعمل على الشبكة يتم التفكير بذلك قبل حتى البدء بالبرمجة
إقتباس : هل اتعامل عادي مع البيانات و بعدها يكفي نسخ التطبيق...
لا، مع كل تعامل مع بيانات التحقق منها حسب منطق ما

قلتم برنامج مخازن، اسئلكما سؤال بسيط:
عند دخول/خروج سلعة للمخزن مفروص هناك رقم لها بتصاعد تلقائيا، ما منطقكم من ذلك ؟ يعني انطلقنا من رقم واحد 1 وهناك ثلاث اشخاص يعملون بالقاعدة بنفس الوقت. من ياخذ الرقم 1 ؟ ومن 2 ومن 3 ؟ وعلى اي اساس ؟
الرد
#4
B.M.AbdelAziZ كتب :
عند دخول/خروج سلعة للمخزن مفروص هناك رقم لها بتصاعد تلقائيا، ما منطقكم من ذلك ؟ يعني انطلقنا من رقم واحد 1 وهناك ثلاث اشخاص يعملون بالقاعدة بنفس الوقت. من ياخذ الرقم 1 ؟ ومن 2 ومن 3 ؟
شكرا أخي على المعلومات
واستفسارك هدا في محله فهنا يكمل الاشكال الحقيقي
وهنا وردتني في نفسي فكرة بسيطة لربما تحتوي الحل وهي
بفرض اننا استعملنا ADOconection adotable
فاعتقد انه ادا في كل عملية اضافة او تعديل او حدف للبيانات نقوم بغلق ثم فتح adotable من جديد
اي في كل عملية يتم تحديث المعلومات
ربما الفكرة تنجح الى حد ما
bibill كتب :3- التعامل مع البيانات و هنا مشكلتي ؟
شكرا اخي على المعلومات
اعتقد اننا لايجب ان نتعامل مع البيانات بشكل عادي
فهناك اشكالية ادا كان اكثر من مستخدم يستعملون البرنامج في نفس الوقت
الرد
#5
وعليكم السلام ورحمة الله وبركاته
بما أنك تستخدم ADO فجرب TRDSConnection عميل/خادم
مع إذاعة أي تعديل ثم الإجابة عليه بـ Requery للجدول الحالي
مع الانتباه لأن لا يرتفع الضغط على الشبكة
مثال مرفق مع دلفي 7:
كود :
%ProgramFiles%\Borland\Delphi7\Demos\Ado\Rds
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#6
إقتباس :في كل عملية اضافة او تعديل او حدف للبيانات نقوم بغلق ثم فتح adotable من جديد
تخيل لديك وصل به 35 سلعة، هل ستغلق وتفتح جدول السلع 35 مرة ؟ وماذا عن الجداول الاخرى المتعلقة!
فكّر
الرد
#7
السلام عليكم

اخي B.M.AbdelAziZ لقد طرحت موضوع اخذ مني وقت طويل لكي اقوم بحله

في عام 1997 قمت بانشاء برنامج للمخزون على مبدأ الادخال والاخراج وانقاص الارصدة ومايعرف بجرد اول المدة كانت القاعدة باردوكس وكان موضوع الشبكة بالنسبة لي يشكل عاق كبير بسبب منطق حساب ارصدة المواد

قمت باعادة هيكلت البرنامج مرة اخرى في عام 1999 حلت المواضيع المتعلقة بسرعة حساب الارصدة ولكن بقية هناك بعض الامور التي لم ارتح لها

في عام 2008 قمت باعادة انشاء برنامج المخزون متسلحا بالخبرة التي تراكمت معي على مر السنوات واستخدمت قاعدة بيانات SQL SERVER وقمت بانشاء بعض الاجراءات T-SQL لكي اقوم بحساب الارصدة بشكل سريع جدا بدون ان يتأثر المستخدم بحركة الحساب طبعا الحركات كانت بمئات الالاف

كان الفرق شاسعا بين الاجرائيتين ولكن بعد جهد كبير لتحقيق السرعة والدقة في موضوع الارصدة وطبعا حلت مشكلة الشبكة والان يعمل على البرنامج 30 مستخدم في نفس اللحظة ولايوجد اي نوع من البطئ الذي قد يأثر على المستخدمين ولله الحمد

اردت المشاركة لايضاح وجهت نظري من هذا النوع من البرامج

سلامي
الرد
#8
وعليكم السلام ورحمة الله
اخي syscall اختصر مشاركتك ب3 نقط (عسى يفكر السائل)

1- وقت طويل/جهد كبير للحل (خبرة سنين)
2- قاعدة بيانات خادم/عميل ( مثلMS SQL Server أو غيره)
3- استخدام Stored Procedure إجراءات مخزنة (T-SQL)
الرد
#9
إقتباس :اختصر مشاركتك ب3 نقط
صحيح ولكن اردت سرد صعوبة الموضوع ونبذة عن حياة برنامج :d

اسف للاطالة

سلامي
الرد
#10
لما لا تقوم بإرسال المعلومات إلى البرنامج الرئيسي الذي بدوره ينظم تخزين هته المعللومات بقاعدة البيانات لتفادي الوقوع في المشاكل المنطقية ؟
من قال حاد عن أصله أو قال مات فقد كذب
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم