منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشاركة قاعدة بيانات SQL على شبكه داخليه
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
عندى قاعدة بيانات sql ملف منفصل امتداد mdf يتعامل معه تطبيق ويندوز

تم عمل مشاركه للمجلد الذى يحتوى البرنامج والقاعده على شبكه داخليه

ويتم بنجاح تشغيل البرنامج والاتصال بالقاعده سواء على الجهاز نفسه او من على جهاز اخر على الشبكه الداخليه

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


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

إذا كان كذلك فهذه ليست مشاركة وليست قاعدة بيانات، لأن قواعد بيانات microsoft SQL server ليس معتمدة على الملفات filebased

لأن السيرفر أول ما يشتغل يقوم بعمل قفل على جميع ملفات قواعد البيانات المحملة عليه ويتطلب إخراجها من السيرفر قبل القيام بعمليات على ملفاتها Take Offline

الأفضل الوصول إلى قاعدة البيانات من خلال السيرفر وليس التعامل مع الملف في كل مرة

يمكنك الاتصال بالقاعدة على الجهاز الآخر الذي يشغل سيرفر بكل سهولة ولأكثر من مستخدم في نفس الوقت
(18-03-20, 03:08 AM)محمد كريّم كتب : [ -> ]هل تقصد أنك مثبت سيرفر منفصل على كل جهاز وتقوم بمشاركة ملف قاعدة البيانات بينهما ؟

إذا كان كذلك فهذه ليست مشاركة وليست قاعدة بيانات، لأن قواعد بيانات microsoft SQL server ليس معتمدة على الملفات filebased

لأن السيرفر أول ما يشتغل يقوم بعمل قفل على جميع ملفات قواعد البيانات المحملة عليه ويتطلب إخراجها من السيرفر قبل القيام بعمليات على ملفاتها Take Offline

الأفضل الوصول إلى قاعدة البيانات من خلال السيرفر وليس التعامل مع الملف في كل مرة

يمكنك الاتصال بالقاعدة على الجهاز الآخر الذي يشغل سيرفر بكل سهولة ولأكثر من مستخدم في نفس الوقت

اشكرك يا محمد كريّم للرد
ولكن المشكله مش انى عاملين سيرفرين .. لأ طبعا
انا بتعامل مع ملف قاعدة البيانات كملف منفصل بأمتداد mdf وبجرى عليه الاتصال وكل العمليات بتاعتى على انه ملف منفصل بمعنى انى ال exe وال mdf موجودين داخل مجلد خاص اسمه MyAppTest والمجلد ده بنقله على فلاش ميمورى وبشغله من اى مسار على اى جهاز ..... بيشتغل عادى بدون تستطيب سيرفر

مثال :
عندى على الشبكه الداخليه 3 أجهزه A و B و C
المجلد MyAppTest يحتوى على App.exe و DB.mdf والمجلد ده موجود على الجهاز A ف المسار D:\Progs\MyAppTest وقد عملت مشاركه للمجلد ده على الشبكه الداخليه
جملة الاتصال هى
Server=(localdb)\v11.0; AttachDBFileName=|DataDirectory|\DB.mdf

التطبيق على الكلام ده
1 - من جهاز A لو دخلت على المسار ده وفتحت البرنامج بيشتغل عادى 
2 - من جهاز B لو دخلت على المجلد المشير فى الجهاز A وفتحت البرنامج بيتشغل عادى
3 - من جهاز C لو دخلت على المجلد المشير فى الجهاز A وفتحت البرنامج بيتشغل عادى

اومال المشكله فين ؟؟
المشكله انى لو حبيت افتح البرنامج على اى جهازين من ال 3 دول ف وقت واحد
بمعنى انى لو فتحت البرنامج من على الجهاز A يشتغل وبعده شغلت B لا يشتغل الا لو قفلت البرنامج على A
وذكلك لو فتحت البرنامج على الجهاز B لوحده بيشتغل عادى لكن لو جيت شغلته من على الجهاز A أو C لا يشتغل الا لو قفلت البرنامج اللى شغال على B ف نفس الوقت

يارب أكون عرفت اوصل المشكله بتاعتى
متابع ... نفس المشكلة