PDA

View Full Version : خطا هنگام بازیابی اطلاعات از بانک sql2000



hana2064
دوشنبه 17 فروردین 1388, 14:02 عصر
با سلام
من قبلا با کدهای زیر از بانم پشتیان میگرفتم وبازیابی میکردم ولی الان موقع بازیابی کردن خطا میگیره
کد bakcup


try
{
Server = new SQLDMO.SQLServer2();
Backup = new SQLDMO.Backup2();
Server.LoginSecure = true;
Server.Connect(".", "sa", "");
MessageBox.Show("سرور : " + Server.Name);
Database = (SQLDMO.Database2)Server.Databases.Item("db", "dbo");
MessageBox.Show(" بانک اطلاعاتی :" + Database.Name);
Backup.Database = Database.Name;
//saveFileDialog1.ShowDialog();
//Backup.Files = saveFileDialog1.FileName;
Backup.Files = this.txtFile.Text;
Backup.SQLBackup(Server);
Server.DisConnect();
Backup = null;
Server = null;
MessageBox.Show("عملیات پشتیبانی اطلاعات با موفقیت انجام شد ! ");
}
catch (Exception err)
{
this.Cursor = Cursors.Default;
MessageBox.Show(err.Message, "Error");
}


کد restor


try
{
Server = new SQLDMO.SQLServer2();
Restore = new SQLDMO.Restore2();
Server.LoginSecure = true;
Server.Connect(".", "sa", "");
MessageBox.Show("سرور: " + Server.Name);
Database = (SQLDMO.Database2)Server.Databases.Item("db", "dbo");
MessageBox.Show(" بانک اطللاعاتی :" + Database.Name);
Restore.Database = Database.Name;
Restore.Files = this.txtFile.Text;
Restore.SQLRestore(Server);
Server.DisConnect();
Restore = null;
Server = null;
MessageBox.Show("بازیابی اطلاعات با موفقیت انجام شد! ");
}
catch (Exception err)
{
this.Cursor = Cursors.Default;
MessageBox.Show(err.Message, "خطا");
}


و خطای زیر

[Microsoft][ODBC SQL Server Driver][SQL Server]Exclusive access could not be obtained because the database is in use.
[Microsoft][ODBC SQL Server Driver][SQL Server]RESTORE DATABASE is terminating abnormally.

روی این خط از کد بازیابی

Restore.SQLRestore(Server);
من عملیات بازیابی رو در شروع برنامه که هیچ استفاده ای از بانک نمیشه انجام میدم نمیدونم چرا خطا میده که بانک در حال استفاده است؟
مرسی

h_r_sh
دوشنبه 17 فروردین 1388, 16:03 عصر
اگر ديتا بيس به هر شكل مورد استفاده قرار گرفته باشه، حتي از داخل خود برنامه، شما با اين خطا روبرو مي شويد. كد زير را به قسمت Restore كد خوتون اضافه كنيد:



server.KillAllProcesses(database.Name);

moon_shine
شنبه 04 تیر 1390, 08:01 صبح
سلام
منم این خطا رو دارم
و کدم در زبان C# نوشته شده
در این زبان فقط میتونم از دستور killprocess استفاده کنم که این دستور هم ک عدد int به عنوان پارامتر می خواد
ممکنه بگید چطور باید دستور رو بنویسم که دیگه خطا نده