PDA

View Full Version : سوال: درخواست پروسیجری برای backup و restore کردن بانک sql؟؟؟



sajadcg
پنج شنبه 06 بهمن 1390, 17:50 عصر
سلام.:لبخندساده:
من جستوجو کردم ، ولی چیزی را که می خواستم پیدا نکردم.

من می خوام 2 پروسیجر در sql برای دو عمل backup و restore کردن بنویسم ، ولی نمی دونم کدش چیه !!!؟؟:گریه:
اگه میشه کدشو بهم بدید یا طوری راهنمائی کنید که قابل فهم باشه.

من این دو پروسیجر را می خوام در برنامه ای که در #C نوشتم به کمک LINQ مورد استفاده قرار بدم.
با تشکر.:قلب::قلب::قلب:

نیما حتمی
پنج شنبه 06 بهمن 1390, 18:11 عصر
سلام دوست عزیز.خود sqlقابلیت این کارو داره.حالا شما واسه چی از خود sql استفاده نمی کنین؟

salehvasaleh
پنج شنبه 06 بهمن 1390, 18:39 عصر
سلام دوست عزیز.خود sqlقابلیت این کارو داره.حالا شما واسه چی از خود sql استفاده نمی کنین؟
اتفاقا من هم دنبال همین کد هستم ولی یک نکته ای هست ما وقتی برنامه ای رو طراحی می کنیم کاربر ممکنه با اس کیو ال آشنایی نداشته باشه پس لازمه که این ویژگی در خود برنامه وجود داشته باشه.

ابراهیم1
پنج شنبه 06 بهمن 1390, 19:52 عصر
منم به همین نیاز دارم ولی کدشو دارم ولی میخوام این کار با linq انجام بدم ولی نمیدونم باید چیکار کمک لطفا جواب بدید

sajadcg
پنج شنبه 06 بهمن 1390, 20:55 عصر
سلام دوست عزیز.خود sqlقابلیت این کارو داره.حالا شما واسه چی از خود sql استفاده نمی کنین؟

منظورتون چیه که خود SQL این ویژگی رو داره؟؟؟؟؟؟؟؟؟

چطور باید ازش استفاده کرد؟؟؟؟؟؟

(منظور من گرفتن backup با #C از بانک SQL بود)

mohammad777666
پنج شنبه 06 بهمن 1390, 22:27 عصر
سلام اول باید این کد رو بنویسی در قسمت کلاس c# بعد دکمه های مربوطه رو داخل فرم قرار بدی و کد ها شو بنویسی

mohammad777666
پنج شنبه 06 بهمن 1390, 22:28 عصر
public partial class backup : Form
{
string MasterPath = "";
public backup()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog browse = new FolderBrowserDialog();
if (browse.ShowDialog() == DialogResult.OK)
{
MasterPath = browse.SelectedPath;
textBox1.Text = MasterPath;
}
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length > 0)
{
MessageBox.Show(" ");
System.IO.Directory.CreateDirectory(MasterPath + @"\Backupmokhaberat");
//
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=AFSANE-PC\;Initial Catalog=mokhaberat;Integrated Security=True";
SqlCommand cmd = new SqlCommand();
try
{
con.Open();
//BACKUP DATABASE TO DISK = ' '
string query = "BACKUP DATABASE mokhaberat TO DISK = '" + MasterPath + @"\Backupmokhaberat" + "\\mokhaberat.MDF" + "'";
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show(" ");
}
catch
{
MessageBox.Show(" ");
}
}
else
{
MessageBox.Show(" ! " + " ", "");
}

mohammad777666
پنج شنبه 06 بهمن 1390, 22:30 عصر
اول 2 تا دکمه و یه تکس باکس قرار بده

ali_habibi1384
پنج شنبه 06 بهمن 1390, 22:32 عصر
استور پراسيجرها در اس كيو ال بصورت زير هستند:
كد بك آپ:


ALTER Procedure [dbo].[AutoBackUp]
@FileName nvarchar(50)

As
declare @Path nvarchar(255)
set @Path =( select top 1 PathBackUp from tblSetting )
declare @PathFileName nvarchar(300)
set @PathFileName = @Path +'\'+@FileName
set @PathFileName = REPLACE(@PathFileName ,'\\','\')
Begin
BACKUP DATABASE [MashinAlat] TO DISK = @PathFileName with noinit

End



كد Restore


ALTER Procedure [dbo].[ReStoreBackUp]
@PathFile nvarchar(300)

As
set @PathFile= REPLACE(@PathFile ,'\\','\')
Begin
ALTER DATABASE [MashinAlat] SET OFFLINE WITH ROLLBACK IMMEDIATE
Restore Database [MashinAlat] From Disk =@PathFile
End

sajadcg
جمعه 07 بهمن 1390, 12:14 عصر
استور پراسيجرها در اس كيو ال بصورت زير هستند:
كد بك آپ:


ALTER Procedure [dbo].[AutoBackUp]
@FileName nvarchar(50)

As
declare @Path nvarchar(255)
set @Path =( select top 1 PathBackUp from tblSetting )
declare @PathFileName nvarchar(300)
set @PathFileName = @Path +'\'+@FileName
set @PathFileName = REPLACE(@PathFileName ,'\\','\')
Begin
BACKUP DATABASE [MashinAlat] TO DISK = @PathFileName with noinit

End



كد Restore


ALTER Procedure [dbo].[ReStoreBackUp]
@PathFile nvarchar(300)

As
set @PathFile= REPLACE(@PathFile ,'\\','\')
Begin
ALTER DATABASE [MashinAlat] SET OFFLINE WITH ROLLBACK IMMEDIATE
Restore Database [MashinAlat] From Disk =@PathFile
End

مرسی بابت کد های که گذاشتین.:قلب:
ولی موقعی که می خوام ازش توی #C استفاده کنم Error میده!!!!!؟؟؟؟
من اینطوری ازش استفاده کردم:

var db = new linq_DataClassesDataContext();
db.Backup1(filename);
که fileName مسیر ذخیره شده است.
error موقع اجرا:'System.Void' is not a valid return type for a mapped stored procedure method.
مشکل از کجاست؟؟؟؟

راستی اگه امکان داره یکم درمورد نحویه عملکرد درستور Backup هم توضیح بدید ممنون میشم.:قلب::قلب::قلب:

ali_habibi1384
جمعه 07 بهمن 1390, 13:03 عصر
با لينك كار نكردم .من از اين پراسيجر توي همه برنامه هام استفاده ميكنم مشكلي نداشته
اينم توضيحات:


ALTER Procedure [dbo].[AutoBackUp]
--نام فايلي كه كاربر ميخواد در مسير تنظيم شده در جدول تنظيمات در جايي ذخيره كنه
--نام فايل كه معمولا بصورت تاريخ و ساعت مثلا 1390_11_01_22_10_01.Bak از ورودي دريافت ميشه
@FileName nvarchar(50)
As
declare @Path nvarchar(255)
--مسير ذخيره سازي فايل بك آپ كه در جدول tblSetting و در فيلد PathBackUp قرار دارد
set @Path =( select top 1 PathBackUp from tblSetting )
declare @PathFileName nvarchar(300)
--تركيب مسير بك اپ و نام فايل بعنوان مثال D:\BackUp\1390_11_10_09_10_09.Bak
set @PathFileName = @Path +'\'+@FileName
--اگر مسير در ريشه باشد بصورت \\ ذخيره ميشه لذا لازمه كه يك جايگزيني براي رفع اين مشكل انجام بديم
set @PathFileName = REPLACE(@PathFileName ,'\\','\')
Begin
--گرفتن پشتيبان با مشخص كردن نام ديتا بيس در مسيري كه تعيين شده با قابليت ايجاد تعداد زيادي بك آپ كپي كردن
BACKUP DATABASE [MashinAlat] TO DISK = @PathFileName with noinit
End