السلام عليكم ورحمة الله وبركاته
Dim con As New SqlClient.SqlConnection("server=" + My.Computer.Name & "\SQLEXPRESS" + ";database=dataname ;integrated security=true")
السلام عليكم ورحمة الله وبركاته
Dim con As New SqlClient.SqlConnection("server=" + My.Computer.Name & "\SQLEXPRESS" + ";database=dataname ;integrated security=true")
اخي الفاضل
السلام عليكم ورحمة الله وبركاتة
أتمني في المرات القادمة ان تحتوي المشاركة علي سؤال واحد فقط لان من قوانين المنتدي تمنع كتابة اكثر من سؤال في المشاركة الواحده فحتي لا تتعرض مشاركتك للاغلاق او الحذف اتمني
فيما هو قادم الالتزام بقواعد المشاركات
وعلي أي حال سأحاول الرد علي بعض الاسئلة المطروحة
بخصوص الاستفسار الاول :- يمكنك عمل Database Generate Script من خلال الاصدار 2008 ليقوم البرنامج اخراج القاعده علي شكل Script لتحويلها الي الاصدار 2005
ثم تستطيع بعدها تشغيل هذا الــ Script عند العميل ليقوم البرنامج بانشاء نسخة جديده من قاعده البيانات لكن علي الاصدار 2005
مرفق رابط يشرح الطريقة ولاتنسي ان تختار اثناء عمل هذا الاجراء الاصدار وهو 2005
بخصوص الاستفسار الثاني :- لا اظن ان السلسلة المرفقة من طرفك يمكنها ان تحدث مشكلة معك وعلي العموم لابد من التجربة للاستفاده من الاخطاء
بخصوص استفسارك الثالث :- يمكنك كتابة Script او انشاء اجراء مخزن يقوم بفحص القاعده اذا لم تكن موجوده مثلا يفعل اجراء ما مثل انشائها من البدايه او اختيار القواعد المتوفرة في الخادم
مثال :- اذا كانت القاعده غير موجوده قم بجلب القواعد المتوفرة علي الخادم
if not exists(select * from sys.databases where name = 'Testing') select name from sys.databases
مثال آخر :- اذا كانت غير موجوده قم بانشاء القاعده علي الخادم
if not exists(select * from sys.databases where name = 'Testing')
create database testing
بخصوص استفسارك الاخير :-
راجع الرابط


أولاً : أعتذز عن المخالفة .. قلت كلها تشكل وتمشي في موضوع واحد
ثانياً : جزاك الله خيراً أستاذ محمد
جوابك على الاستفسار الأول جربته والحمد لله ( صحيح طلب مني تعديل بعض الحقول لأنها غير مدعومة مثل date لازم تحوله datetime )
والثاني : أجرب وإن شاء الله يصير خير .
الثالث : استفساري عن اظهار فورم لتسجيل عنوان آي بي السيرفر .. ثم يحفظ هذه الاعدادات في النظام للمرات القادمة ..
الرابع : الرابط الذي وضعته أستاذي قد اطلعت عليه في وقته ( أنا متابع المنتدى ومواضيعه الجديدة يومياً أكثر من مرة ) ولكن ماتم فيه هو مناقشة تحديث قاعدة البيانات وعمل سكربت لها ... وأنا أسأل عن البرنامج التنفيذي ...
عفواُ
البرنامج التنفيذي بمنتهي السهوله تأخذ نسخة من EXE التي قد عملت عليها تحديثات ثم تعمل لها Copy and Replace للملف القديم الموجود عند العميل في مسار البرنامج بدون عمل
setup project جديد
لماذا تريد تخزين IP السيرفر عندك في البرنامج طالما ان البرنامج يتصل بالفعل عن طريق سلسلة الاتصال .. طالما ان برنامج SQL Sever تم ربطه بمستخدم من خلال Domain فيمكنك
الاتصال بسهولة عن طريق سلسلة الاتصال


جزاك الله خيراً
اليوم جربت البرنامج وثبته عند العميل .... هذه الملاحظات والمشاكل التي واجهتني :
في الجهاز الرئيسي : الكود السابق للاتصال لم ينفع .. لكون السيرفر عنده بدون كلمة SQLEXPRESS .. فاضطررت لتعديل الكود كالتالي :
Dim con As New SqlClient.SqlConnection("server=myserver ;database=dataname ;integrated security=true")
فاشتغل تمام والحمد لله
لكن في الجهاز المرتبط ncomputing وفي الجهاز المرتبظ بالشبكة لم يعمل وطلعت الرسالتين المرفقتين ...
لهذا السبب أردت أن أجعل تحديد الآيبي عبر المستخدم ... لأنني رأيت في برنامج عندهم هذه الطريقة وهي شغالة تمام ...
من خلال الرسالة المرفقة يتضح لنا ان الــ Client لا يستطيع الاتصال ببرنامج SQL Server الموجود علي الماكينة الاساسية و يجب اثناء تنصيب برنامج SQL Server ان تراعي ربط البرنامج
بــ
1- Domain account اذا كنت تعمل بنظام الدومين حتي تستطيع باقي الاجهزة التعامل مع القاعده الموجوده علي السيرفر الاساسي
2- النظام الذي اشرت ايه ncomputing لم اسمع عنه من قبل لكن تأكد من ان السيرفس التي تستخدم لاقلاع SQL Server منضبطة هكذا
NT Network AuthorityNetwork Service
مرفق روابط ربما يساعدك في هذه المسألة


جزاك الله خيراً أستاذي محمد
بالنسبة للموقعين دخلت فيهما ولم أفهم شيء !!!
وبالنسبة لما ذكرته سابقاً فلي سؤال : هل ما ذكرته يتعلق بالبرنامج الذي عملته أم بالكمبيوتر تبع العميل أو إعداداته ؟؟
لأن العميل لديه برنامج يرتبط بنفس السيرفر ويعمل في جميع الأجهزة ... رأيت في ذلك البرنامج إمكانية تعديل السيرفر بإدخال رقم آي بي أو اسم المستضيف أو خيار أن الجهاز هو الذي به السيرفر ... كذلك فيه خيار تحديد قاعدة البيانات - تظهر جميع قواعد البيانات في السيرفر مثلاً : 2011 - 2012 - 2013 ... يختار العميل مايريد العمل عليه منها .... فلما فتحته وجدت إسم قاعدة بياناتي موجود في تلك القائمة .... بمعنى أنه تعرف عليها .. ولكن برنامجي لم يتعرف عليها ...
إذاً يمكنني القول بأن كود الاتصال الذي استعملته أنا غير كافي للعمل على الشبكة ...
حاول تعديل سلسلة الاتصال كالتالي ربما تعمل معك
1- بحيث تكتب في سلسلة الاتصال IP الجهاز الذي يحوي قاعده البيانات بدلا من اسمه
2- تستخدم المستخدم sa والباص وورد الخاص به في سلسلة الاتصال
مثال
"server=192.168.26.55\SQLInstance ;database=dataname ;user id=sa;password=123456"
اذا لم تفلح هذه الطريقة
حاول تعديل اسلوب الاتصال مع القاعده ليكون عن طريق ODBC ربما ايضا يعمل معك
شاهد المرفق ربما يفيدك في معرفة هذه الطريقة


جزاكم الله خيراً
لقد عدلت كود الاتصال إلى التالي :
Dim con As New SqlClient.SqlConnection("data source=myserver;Initial Catalog=mydatabase;integrated security=sspi;timeout=10")
فلم يعمل ... ثم لما راجعت موضوع حماية قاعدة البيانات ... جاءتني فكرة عمل قروب ووضع المستخدمين فيه وإعطائهم صلاحيات على القاعدة ... فاشتغل والحمد لله ...
ولكن لدي سؤال :
هذا تجريب للبرنامج وعندما ينتهي تماماً فأريد أن أوزعه على عدد من المستخدمين ... وليس كلهم أستطيع الوصول إليهم وتعديل بيانات السيرفر ... الخ ... بل ربما بعضهم ليس لديه إس كيو ال مثبت على الجهاز ... وبعضهم ليس له خبرة في قواعد البيانات والمستخدمين ليقوم بموضوع الصلاحيات ...
فما هي أسلم ,احسن طريقة لحل هذه المشكلة .. وجعل البرنامج يعدل ويتلائم أوتوماتيكي مع العميل ؟
الحل السريع لهذه المسألة
أن تقوم بالدخول علي جهاز العميل من اي مكان في العالم عن طريق برنامج Teamviewer وعمل هذه الخطوات بنفسك حتي لا تثقل عاتق العميل او المستخدم بهذه الخطوات التقنية التي لا تهمة
الحل البرمجي
عليك البحث والاطلاع علي الموضوعات الموجوده في المنتدي او علي شبكة الانترنت للوصول للحل الامثل لان الانظمة تختلف من مكان لاخر
مثال
هناك منشآت تعمل بنظام Domain وهناك منشآت تعمل بنظام WorkGroup وهنا نظام آخر NComputer الذي ذكرته انت وكل نظام من الانظمة يحتاج الي تعديلات في البرنامج لكي تتوافق معه
باالتوفيق

