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

نسخة كاملة : كيفية الإغلاق التام لـقاعدة بيانات SQL
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
يا مرحبا ويا مسهلا بكل المتابعين والمبرمجين


حقيقة أنا صادفتني مشكلة (عويصة) حاولت أستخدم فيها خبراتي ولم تنجح !

كما أني حاولت البحث في (الشبكة العنكبوتية) فلم أجد أي   تحل مشكلتي  Smile

المشكلة هي أن قاعدة بيانات برنامجي SQL فيها أوامر معينة لعمل DeAttach لقاعدة لبيانات
ولكن البرنامج لا يقوم بعمل DeAttach إذا كانت قاعدة البيانات تعمل !

 ولكن عندما أقوم بإعادة تشغيل البرنامج ، وأقوم بوضع أوامر DeAttach قبل تشغيل قاعدة البيانات فإن الأمور تكون تمام
ويتم عمل DeAttach بكل سهولة .

فالرجاء مساعدتي في الحصول على أوامر إيقاف عمل قاعدة البيانات نهائيا ؛ لأتمكن بذلك من عمل DeAttach دون أن أضطر لإعادة تشغيل البرنامج في كل مرة .

▒▓ ولكم خالص التحية والمحبة والاحترام  
جرب التالي
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
(01-08-22, 04:05 PM)aljzazy كتب : [ -> ]جرب التالي
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE


شكرا لك أخي العزيز  aljzazy على محاولتك لمساعدتي

ولكن أين أضع هذا الكود ؟

أنا حاولت أن أضعه في Button1 لكنه رفضه ووضع تحت الكود خطا أحمرًا !

الطريقة ان تخزن هذا الكود بعد التعديل في متغير نصي ليكن مثلاً (sqlString)
ثم تعطي امر للكائن الذي عرفته على انه (SqlCommand) ليقوم  بتنفيذ هذا الامر النصي. ليكن مثلاً (sqlCmnd)
فيصبح الكود :

كود :
sqlCmnd.CommandText = sqlString
اخي الفاضل :

الامر الذي ذكره الأخ aljazazy هو امر بلغة Sql ولا يمكن كتابته مباشرة في اجراء الزر ولكن يتم مثل التالي :
PHP كود :
Dim con As SqlConnection = New SqlConnection("Data Source=localhost; Integrated Security=SSPI; Initial Catalog=Database")
Dim cmd As SqlCommand

cmd 
= New SqlCommand(" ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;"con)
con.Open()
cmd.ExecuteNonQuery()
con.Close() 
(01-08-22, 04:05 PM)aljzazy كتب : [ -> ]جرب التالي
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
فعلا الكود ممتاز جدا اسندت له جملة اتصال من دون مسمى قاعدة بيانات و تم بشكل جميل.
(01-08-22, 06:31 PM)Jounior_P كتب : [ -> ]اخي الفاضل :

الامر الذي ذكره الأخ aljazazy هو امر بلغة Sql ولا يمكن كتابته مباشرة في اجراء الزر ولكن يتم مثل التالي :
PHP كود :
Dim con As SqlConnection = New SqlConnection("Data Source=localhost; Integrated Security=SSPI; Initial Catalog=Database")
Dim cmd As SqlCommand

cmd 
= New SqlCommand(" ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;"con)
con.Open()
cmd.ExecuteNonQuery()
con.Close() 


أشكرك شكرا جزيلا (بحجم السماء) أخي Jounior_P ، وكذلك أخي العزيز aljzazy على الكود
أنا طبعا عدلت الكود على حسب البرنامج الذي عندي
ولكن للأسف تظهر الرسالة التالي ، علمًا بأن مسار قاعدة البيانات صحيح !
إلا إذا كان هناك سبب آخر هو الذي كان سببا في إظهار رسالة الخطأ
وهذه هي رسالة الخطأ :



وهذا هو الكود الذي عدلته :
كود :
       Dim DBName As String = "D:\VB.net Test\Alwan.mdf"

       Dim con3 As SqlConnection = New SqlConnection("Data Source=" + My.Computer.Name + "; Integrated Security=SSPI; Initial Catalog= " & DBName & "")
       Dim cmd2 As SqlCommand

       cmd2 = New SqlCommand(" ALTER DATABASE [ " & DBName & " ] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;", con3)
       con3.Open()
       cmd2.ExecuteNonQuery()
       con3.Close()
أخي الفاضل :
راجع صلاحياتك على قاعدة البيانات
يعني كيف طريقة مراجعتها ؟
هل تقصدد أعدل الكود ؟
ولا إيش بالضبط ؟
(01-08-22, 10:11 PM)أبو خالد الشكري كتب : [ -> ]يعني كيف طريقة مراجعتها ؟
هل تقصدد أعدل الكود ؟
ولا إيش بالضبط ؟

جرب اسناد جملة اتصال من دون قاعدة بيانات:
PHP كود :
   Private strd As String "Data Source=(local)\SQLEXPRESS;Integrated Security=True;MultipleActiveResultSets=True;" 
الصفحات : 1 2