PDA

View Full Version : یک مشکل در تهیه backup از جداول SQL Server



Lida Lari
پنج شنبه 12 خرداد 1384, 23:14 عصر
سلام
می خواهم از طریق کد دلفی از دیتابیس ساخته شده در SQL Server پشتیبان تهیه کنم. معمولا از BatchMove برای تهیه backup از فایلها استفاده می شود اما برای دیتابیس کارایی ندارد. ایجاد backup از طریق تنظیمات خود SQL را بلدم ولی می خوام یک برنامه شبیه batchmove در دلفی اینکار را بکند . با تشکر

:oops:

ssmehizadeh
جمعه 13 خرداد 1384, 09:17 صبح
سلام
دوست عزیز برای این کار کامپوننت های هم ارائه شده که کار رو خیلی راحت میکنه و از نظر میزان فشرده سازی هم عالیه و بازیابی اون هم خیلی راحته .
الان هرچی گشتم پیداش نکردم که برات بزارم استفاده کنی ولی اگه مایلی دنبالش می گردم پیداش می کنم

موفق باشی

Lida Lari
جمعه 13 خرداد 1384, 09:52 صبح
سلام
ممنون از توجه تون
لطفا کامپوننتهای مربوطه را برایم بفرستید. برای اینکه من پیدا نکردم و وقتی هم برام نمونده :گیج: :cry: [/quote]

m-khorsandi
جمعه 13 خرداد 1384, 10:43 صبح
درود

http://www.barnamenevis.org/forum/viewtopic.php?t=23766&highlight=backup
http://www.barnamenevis.org/forum/viewtopic.php?t=25467&highlight=backup
http://www.barnamenevis.org/forum/viewtopic.php?t=22281&highlight=backup

nader kianey
یک شنبه 27 مرداد 1387, 13:15 عصر
سلام
دوست عزیز برای این کار کامپوننت های هم ارائه شده که کار رو خیلی راحت میکنه و از نظر میزان فشرده سازی هم عالیه و بازیابی اون هم خیلی راحته .
الان هرچی گشتم پیداش نکردم که برات بزارم استفاده کنی ولی اگه مایلی دنبالش می گردم پیداش می کنم

موفق باشی با سلام نام این کامپوننت را می خواهم بدانم باتشکر

daffy_duck376
یک شنبه 27 مرداد 1387, 13:24 عصر
دلفی خودش داره ADO COMMAND این دستور ور توش بنویس و اجرا کن
procedure TForm1.Button1Click(Sender: TObject);
var
str,s,s1,s2,s3:string;
d:tdate;
begin
str:=ShellTreeView1.Path;
d:=date;
s:=DateToStr(d);
s1:=copy(s,1,4);
s2:=copy(s,6,2);
s3:=copy(s,9,2);
s:='backup_'+s1+'_'+s2+'_'+s3;
str:=str+'\'+s;
with ADOCommand1 do
begin
CommandText:='BACKUP DATABASE mydatabase1 TO DISK='+QuotedStr ( str);
execute
end;
ShowMessage('پشتیبانگیری انجام شد');
end;
end.

مصطفی مختاری
شنبه 23 شهریور 1387, 21:32 عصر
دلفی خودش داره ADO COMMAND این دستور ور توش بنویس و اجرا کن
procedure TForm1.Button1Click(Sender: TObject);
var
str,s,s1,s2,s3:string;
d:tdate;
begin
str:=ShellTreeView1.Path;
d:=date;
s:=DateToStr(d);
s1:=copy(s,1,4);
s2:=copy(s,6,2);
s3:=copy(s,9,2);
s:='backup_'+s1+'_'+s2+'_'+s3;
str:=str+'\'+s;
with ADOCommand1 do
begin
CommandText:='BACKUP DATABASE mydatabase1 TO DISK='+QuotedStr ( str);
execute
end;
ShowMessage('پشتیبانگیری انجام شد');
end;
end.
برای به کار گیری کدی که دوستمان در بالا گفتند کافیه که یک AdoCommand روی فرم بگذارید
و به SQL Server متصلش کنید.
یه دونه هم ShellTreeView روی فرم بگذارید بدون تغییر دادن تنظیماتش.
حالا با یک دکمه کد بالا رو می تونید اجرا کنید.
فایل پشتیبان روی Desktop ذخیره می گردد.

باز هم از daffy_duck376 (http://www.barnamenevis.org/forum/member.php?u=28691) به خاطر راهنمایی جالبش تشکر می کنم.

javad3d
سه شنبه 16 مهر 1387, 10:54 صبح
با سلام و تشكر از دوستان

بك آپ گيري از بانك

BACKUP DATABASE Databasename TO DISK = 'c:\Databasename.bak'


ريستور كردن بانك



RESTORE FILELISTONLY FROM DISK = 'c:\Databasename.bak'



كپي نمودن ديتا بيس

RESTORE DATABASE DatabaseNewName FROM DISK = 'c:\Databasename.bak' WITH MOVE 'Databasename' TO 'c:\test\DatabaseNewName.mdf', MOVE 'Databasename_log' TO 'c:\test\DatabaseNewName.ldf'GO



با اجراي دستور مربوط به ريستور كردن، پيغام خطايي مبني ، بر اينكه بانك در حال استفاده است صادر مي شود.
راه حل چيست؟


RESTORE DATABASE DatabaseNewName FROM DISK = 'c:\Databasename.bak'