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

نسخة كاملة : كيفية التعامل مع عدة قواعد بيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كيف اجعل البرنامج يتعامل مع عدة قواعد بيانات حيث كل قاعدة بيانات تمثل شركة
بحيث يكون هناك فورم في البرنامج استطيع من خلاله عمل فصل لقاعدة بيانات وربط مع قاعدة بيانات اخرى للخروج من حسابات شركة والدخول على حسابات الشركة الثانية
السلام عليكم
مجرد اقتراح :
1- اجعل كود الاتصال بقاعدة البيانات بموديل مستقل واجعل اسم قاعدة البيانات بارمتر داخل هذا الموديل 
2- قم باستدعائه ومرر اليه اسم قاعدة البيانات التي تريد الاتصال بها 
ولكن هذا يتوقف علي كون الجداول بقواعد البيانات تحمل نفس الاسم بكل منها ونفس الأعمدة حتي لا تضطر الي تغير كل الأكواد المتعلقة بالاضافة والتعديل والحذف. مع كل عملية اتصال بقاعدة بيانات مختلفة.

الاقتراح الثاني:
لماذا لا تفكر في ضم البيانات الموجودة بكل القواعد لقاعدة بيانات واحدة وتجعل وتجعل المستخدم يري البيانات الخاصة بشركته فقط من خلال كود الشركة الذي تربطه ببيانات المستخدم بجدول المستخدمين.
وهذا سيوفر عناء التخزين لقواعد بيانات كثيرة والاتصال و اخذ نسخ احتياطية مختلفة وو ...

تمنياتي بالتوفيق
وعليكم السلام
شكراا على ردك
ارجو أن أكون أفدتك 
أما عن المقترح الأول فهذا كود للتجربة
الشروط: أن تكون قواعد البيانات بمجلد واحد بجوار البرنامج (يمكنك التعديل علي الكود لتجاوز هذا الشرط بالكيفية التي تريد)
PHP كود :
public sub conns (dbName as stringdbPass as string)
 
   Dim ConStr As String = ("Provider=Microsoft.ACE.OLEDB.12.0;data source=" Application.StartupPath "\" & dbName & ";user id=admin;jet oledb:database password=" & dbpass)
 Dim Conn As New OleDbConnection(ConStr)
End sub 
ملاحظة: لم أجرب الكود - أرجو الافادة ان كان هناك خطأ ما!
تمنياتي بالتوفيق
اشكرك على ردك
في الحقيقة انا لم اجرب المقترح الاول اما الثاني فهو مختلف عن طلبي
ما فعلناه انا قمنا باضافة اكواد وداتا جريد فيو ومجموعة ادوات ازرار وتيكست بوكس وهذا
يكتب الزبون اسم قاعادة البيانات الجديدة ويكتب اسم الشركة الجديد التي يريد التعامل معها فيقوم فيجوال بيسك بانشاء قاعدة البيانات ويقوم بتخزين اسم قاعدة البيانات واسم الشركة وجملة الاتصال بقاعدة البيانات في جدول معين خارجي
وفي الداتا جريد فيو يظهر جميع اسماء الشركات وبجانب كل شركة اسم قاعدة البينات وعند النقر المزدوج على اسم اي شركة يقوم البرنامج بفصل الاتصال بقاعدة البيانات الحالة والربط مع قاعدة البينات الجديدة الموافقة لاسم الشركة
حتى الان الامور طيبة
ولكن المشكلة انه عند انشاء قاعدة بينات باسم محدد ينجح الامر اما عند جلب البيانات من ملف سكربت موجود مسبقا يفشل بسبب تضارب الاسم
والسؤال عند انشاء ملف سكربت لقاعدة بيانات كيف احذف اسم قاعدة البيانات من داخلة بحيث اعند استيراد البيانات التي فيه لا يتم استيراد اسم قاعدة البيانات
مافهمته من سؤال حضرتك أولا أن قواعد البيانات موجودة بالفعل ثم تريد التبديل بين الاتصال بأحدها 
أما الآن فصار الأمر أنه يتم انشاء القاعدة جديدة حسب رغبة العميل 
إقتباس :فيقوم فيجوال بيسك بانشاء قاعدة البيانات ويقوم بتخزين اسم قاعدة البيانات واسم الشركة وجملة الاتصال بقاعدة البيانات في جدول معين خارجي
ولكن السؤال ما الفائدة من انشاء قاعدة بيانات جيدة بكل مرة؟!! فإن الأصل بقواعد البيانات أن تكون ثابتة تتجدد بها اضافة البيانات لتحتفظ بالبيانات لفترات طويلة 
- أما ان كنت تعني أنه يتم انشاء قاعدة بيانات لأول مرة برمجيا من خلال الاسكربت المعد مسبقا لتبقي بعد علي السرفر ليتصل بها باقي الأفرع - فربما هذا أقرب للفهم 
أما عن طريقة تغير اسم قاعدة البيانات داخل الاسكربت الخاص بانشاء قاعدة البيانات فهذا سيحتاج الي ان يكون يخذن الاسكربت بمتغير نصي يتم التحكم فيه من خلال الكود لتغير اسم قاعدة البيانات وفقا لادخال المستخدم لها 
أو يخزن الاسكربت بملف نصي txt  يتم قراءته من خلال الكود وتغير اسم قاعدة البيانات كذلك برمجيا اليه ثم تمريره الي الsql server 

اليك هذا الرابط لمزيد من الاستفادة فكان النقاش به علي مضمون سؤالك
http://vb4arb.com/vb/showthread.php?tid=26302&page=2

تمنايتي بالتوفيق
أبو عبد الله الحلواني اشكرك كثيرا على اهتمامك
بالحقيقة لدينا بالفعل برنامج حسابات كامل قمنا بتصميمه انا وشركائي وقد نال رضا العملاء وبالطبع عند التشغيل الاول يعمل اتاش لقاعدة البيانات المرفقة معه
ولكن انا اقوم بالتعديل والتحديث له باستمرار وفق ما يطلب مني
الان مطلوب مني اضافة بعض ميزات منها ان يكون البرنامج قادر على التعامل مع عدة قواعد بيانات بحيث يعمل المحاسب عند محلين تجاريين ويجري الحسابات على نفس البرنامج لكلا المحلين
منذ ساعات قليلة تم المطلوب ولكن مع بعض المشاكل التي دائما ما تواجهني عندما اتعامل مع ملفات سكربت بينما لا تواجهي عند التعامل مع ملفات من نوع mdf و ldf
المشكلة انه عند حذف قاعدة البيانات ( على فرض ان كمبيوتر العميل تم عمل فورمات له مثلا) لا يمكن استرجاع النسخة الاحتياطية من نوع bak حتى لو قمنا بعمل قاعدة بيانات بنفس الاسم ** تظهر رسالة مفادها ان هذه النسخة الاحتياطية غير مناسبة لقاعدة البيانات**
بينما لا تواجهني هذه المشكلة بالتعامل مع ملفات mdf و ldf فلذلك ساجرب تطبيق نفس الاكواد معها


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