# Native Code > برنامه نویسی در Delphi > بانک های اطلاعاتی در Delphi >  آموزش طریقه گرفتن backup از پایگاه داده SQL Server در یک برنامه دلفی ساده!

## oghab

سلام

(براي ديدن نسخه جديد گرفتن بك آپ به صفحه دوم برويد و يا لينك زير را ببنيد:
https://barnamenevis.org/showth...765#post623765
و براي ساخت database و restore اين لينك را:
https://barnamenevis.org/showthread.php?t=32723
به زودي نسخه اصلاح شده restore نيز گذاشته ميشود.
اين پرانتز در تاريخ 8 آبان 87 اضافه شد)

این هم به همان راحتی create و restore کردن databse است!
کنترلهایی که برای این کار لازم است یک adocmmand ، یک button ویک shellTreeView یا یک ابزار دیگر شبیه آن است! (برای انتخاب مسیر ذخیره backup) و در صورت دلخواه edit برای وارد کردن نام backup جدید!
با این روش می تونید به کاربر بگید از طریق همون برنامه ای که باهاش کار می کنه به راحتی یک bachkup گرفته و بر روی cd ذخیره نماید تا با در صورتی که روزی روزگاری برای کتمپیوتر مشگلی پیش آمد مثلا هارد سوخت. با نصب مجدد برنامه و sql داده هایی که قبلا در پایگاه داده ذخیره کرده است. قابل برگشت باشد!
برای این کار ارتباط بین adocommnad1 و sql server را از طریق connection string برقرار کنید!
سپس در رویداد کلیک button کد زیر را بنویسید!

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;

البته به جای mydatabase1 نام database خودتان را در sqlserver بنویسید!
در این کد من از تاریخ برای متمایز کردن backup ها استفاده کردم. شما در صورتی که مایل باشید. می توانید به جای این کار نام backup را در یک edit از کاربر بپرسید!
اصل کد به صورت زیر است:

backup database mydatabase1 to disc='d:/new folder/backup3'

که در قسمت disc= آدرس ذخیره سازی backup و نام آن در داخل کوتیشن ذکر می گردد!
و شما می توانید کد ذکر شده را به دلخواه خود تغییر دهید!
نمونه برنامه را ضمیمه کردم.
اگر database را که در تاپیک آموزش طریق ساخت و restore فایل backup در نمونه برنامه وجود داشت! ساخته باشدی. این برنامه کار خواهد کرد. و یا در کد آن نام mydatabase1 را به نام یکی از database ها موجود در sql خودتان تغییر دهید. تا نحوه کار آن را ببنید!
اگر انتقادی یا ایرادی وجود داشته باشه، با کمال میل می پذیرم!
موفق باشید!
خداحافظ

----------


## davoodmz

باسلام
عقاب جان من از کد شما قبلاً استفاده کردم عالی است . اما یک مورد بود که قرار بود رفع شود ولی نشد این که بعد از گرفتن پشتیبان از یک دیتابیس اگر بار دوم از همان دیتابیس بک آپ گرفته شود روی آن اوررایت می شود و حجم دیتابیس را بالا می برد . ممکن است کاربر در یک روز دو یا بیشتر بک آپ بگیرد. 

باتشکر
داود

----------


## omid_delphi2

لطفا در مورد restore کردن هم توضیح بدهید

----------


## babak869

اگه جستجو می کردید حتما پیدا می کردید :

http://www.barnamenevis.org/sh...ghlight=backup

----------


## davoodmz

با سلام خدمت دوستان
آقا من در همین تایپیک عرض کردم اگر کاربر در یک روز بخواهد چندین بار بک آپ بگیرد این برنامه حجم دیتابیس را بالا می برد یعنی OVERRITE نمی کند و حجم فایل ( به تعداد دفعات بک آپ ) ضرب می شود یعنی اگر حجم فایل دیتابیس 5 مگ باشد اگر در یک روز 3 بار بک آپ گرفته شود از همان دیتابیس حجم 15 مگ می شود.
باتشکر از دوستان
داود

----------


## asdfghjkl

1. اگر بخواهیم فقط از یک جدول دیتابیس backup بگیریم چکار باید کرد
2. اگر بخواهیم از یک جدول فقط یکسری رکوردهای خاصی را backup بگیریم  چه باید کرد

----------


## oghab

> با سلام خدمت دوستان
> آقا من در همین تایپیک عرض کردم اگر کاربر در یک روز بخواهد چندین بار بک آپ بگیرد این برنامه حجم دیتابیس را بالا می برد یعنی OVERRITE نمی کند و حجم فایل ( به تعداد دفعات بک آپ ) ضرب می شود یعنی اگر حجم فایل دیتابیس 5 مگ باشد اگر در یک روز 3 بار بک آپ گرفته شود از همان دیتابیس حجم 15 مگ می شود.
> باتشکر از دوستان
> داود


شما می‌تونید اون قسمت کد را که تاریخ امروز را به backup اضافه می‌کنه و اسم فایل را می‌سازه حذف کنید و نام backup فایل   را داخل یک edit از کاربر بگیرید تا این مشکل پیش نیاد.

----------


## babak869

البته برای این کار راههای زیادی هست.یکی اینکه در هنگام تهیه بک آپ یه جستجو کنه که آیا در اون مسیر انتخاب شده فایلی با نام بک آپ جدید وجود داره یا نه و اگه وجود داشت پیغام اخطار بده.
یا اینکه برای هر بک آپ علاوه بر تاریخ روز جاری یه شماره جداگانه هم به اون اضافه کنه تا بک آپ ها از هم متمایز بشن
یا اینکه هر بک آپ رو در یه پوشه جداگانه بریزه تا تداخلی برای بک آپ ها پیش نیاد
ولی به نظر من بهترین راه استفاده از یه نام یکتا در نام نسخه پشتیبان هستش

----------


## ariobarzan

با تشکر 
برنامه با موفقیت  اجرا می شود ولی هیچ فایلی ایجاد نمی شود 
لطفا راهنمایی بفرمایید

----------


## ariobarzan

هیچ کی که تحویل نگرفت
ولی خودم پیدا کردم  روی کامپیوتری که اس کیو ال روش نصب شده می گیره
در ضمن اگر در آخر متن دستور گرفتن backup  چیزی ننویسیم full backup  می گیره
و حجمش هم مرتب زیاد میشه ولی اگر از کلمه  differential  استفاده بشه حجمش کمتر 
میشه

----------


## kamal_habibi

سلام خدمت دوستان 
من با توجه به این کدی که آقای عقاب گداشته بود تونستم Backup بگیرم ولی در Restor کردنش مشکل دارم تمام لینکها رو هم گشتم ولی نتونستم به جواب برسم 
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;
این کد آقای عقب بود برای پشتیبان گیری
اگه میشه منو در Restor کردن راهنمایی کنید

----------


## vahid64

آقای کمال حبیبی عزیز برای نوشتن کد از قسمت مخصوص کد استفاده کن تا کد ها خوانا باشند در مورد ریستور کردن هم بر می گرده به نحوه کدنویسی شما اگر زمان اجرای کد ریستور جداول شما در حال استفاده(in used) نباشند کد به درستی اجرا می شود

----------


## kamal_habibi

چطوری جداول را از حالت Use خارج کنم مشکل من همینه 
کدی سراغ ندارید برای اینکه جداول را از حالت Use خارج کنم؟

----------


## vahid64

من کد خاصی به ذهنم نمی رسه ولی تا جایی که می دونم این تا حد زیادی بستگی به نوع برنامه نویسی شما داره اگه می خواید مشکلتون حل بشه باید اطلاعات کاملی از پایگاه داده برنامه تون و همچنین نحوه اتصال به برنامه و ... رو برامون توضیح بدید.
البته از جستجو هم استفاده کنید چون تا جایی که یادمه یک دفعه قبلاً در مورد این موضوع بحث شده این طوری شاید سریعتر به نتیجه برسید.

----------


## JavanSoft

برای بازیابی دیتابیس جاری را Closeو به Master متصل شوید

----------


## JavanSoft

برای بازیابی دیتابیس جاری را Closeو به Master متصل شوید


 
 
   BackupCon.Connected:=False;
   Dm.ModiranFarmerCon.Connected:=False;
   While Dm.ModiranFarmerCon.Connected Do ;
   BackupCon.Database:='master';
   BackupCon.Username:='sa';
   BackupCon.Password:='Pass';
   'Server':=Dm.ModiranFarmerCon.Server;
   BackupCon.Connect;
   While Not BackupCon.Connected Do ;
   QBackup.SQL.Text:= 'RESTORE DATABASE ['+Dm.ModiranFarmerCon.Database+']FROM DISK = '+QuotedStr(OpenDialog1.FileName);
   Try
      QBackup.Execute;
      MsgList.Items.Add('اتمام');
   Except
      Tools.ShowMsg('خطا');
   End;

----------


## Accidentboy

این کد از کل DataBase تون Backup می گیره


BACKUP DATABASE [You'r DBname] TO DISK =N'Your path' WITH NOFORMAT
,NOINIT,NAME
=N'AdventureWorks-Full Database Backup', SKIP, NOREWIND,NOUNLOAD, STATS = 10 
GO

----------


## rabinhod20

سلام 
بابا دمت گرم 
خیلی حال کردم  بابا تو دیگه کی هستی؟
یک خواهش داشتم میتونی یک برنامه restor data base to delpi  bezari

----------


## مجتبی جوادی

آقای جوای سافت ممنون از لطف شما ولی اگه ممکن است بفرمایید BackupCon , ModiranFarmerCon چی هستند ؟
و اگر ممکن است یک مثال هم در این تاپیک ردمورد restore بگذارید خیلی لطف می کنید
با تشکر

----------


## kamal_habibi

ببینید دوست عزیز من خیلی جستجو کردم در مورد Backup گیری و Restore ولی بیشتر در مورد Backup گیری راهنمایی میکردند بهر حال من در این زمینه خیلی جستجو کردم چون واسه پروژم لازم داشتم که بالاخره تونستم یک کد جالب از Backup و Restore  پیدا کنم و اونو واسه شما هم میذارم
امیدوارم که مشکل تونو حل کنه
ولی قبل از هر چیز Data Base  داخل پوشه Data به نام Test  همراه مثال را به SQL خود اضافه کنید تا مثال هنگام اجرا مشکلی نداشته باشد

----------


## مجتبی جوادی

آقای حبیبی ممنون از لطف شما
من کد شما را در برنامه خودم تست کردم و باز همان مشکل همیشگی اتفاق افتاد یعنی برنامه پیغام خطای (( دیتابیس در حال استفاده است)) داد .
متشکرم

----------


## kamal_habibi

ببینید شما موقعی که در دلفی میخواهید برنامه تان را تست کنید باید ADOConnection شما در حالت اتصال به Data Base نباشد 
موقعی که برنامه شما شروع به اجرا میکند باید ADOConnection و ADOTable را فعال کنید
من این نمونه برنامه ای که واسه شما فرستادم 100% کار میکند و خودم هم از همین کد استفاده کردم

----------


## iman_s52

میشه در مورد پشتیبان گیری از روی سیستمی که SQL روش نصب نیست توضیح بدین

----------


## vahid64

> yousef.sh.2008@gmail.com
> 
> ایمیل بزنید در رابطه با مشکلاتان بی منفعت نیست


ای بابا تاریخ پستها رو ببین بعد از این همه مدت اومدی تاپیک رو آوردی بالا 
ما گفتیم یه جواب توووپ دادی !؟

----------


## none_none

ميخواستم ببينم چه جوري ميشه از بانك پارادكس بك آپ گرفت.

----------


## vcldeveloper

> ميخواستم ببينم چه جوري ميشه از بانك پارادكس بك آپ گرفت.


ربطی به عنوان این تاپیک نداره، و باید در تاپیک جداگانه ایی بحث بشه.
در هر حال، برای پارادکس کافیه فایل بانک اطلاعاتی را کپی کنید جای دیگه. فکر نکنم راه حل پشتیبانی گیری داشته باشه.

----------


## polpolpolpol

سلام آقای حبیبی . 
من برنامه شما رو استفاده کردم دستتون درد نکنه . ولی یک مشکلی که هستش اینه که وقتی رو سیستم خودم عمل بک آپ رو انجام میدم در زمان restore  فایل ایجاد شده در یک سیستم جدید که نسخه msde  روی اون نصبه با پیغام خطایی مواجه مشم که از فقدان فایل mdf ناشی میشه . اگه میشه شما یا بقیه دوستان منو راهنماییم کنین که چه کار کنم ؟

----------


## hadisalahi2

برنامه جناب آقای حبیبی ، فقط برای سرور کار میکنه ، من هم استفاده کردم. حالا برای بازیابی میتونید از کامپیوتر سرور استفاده کنید و فایل BackUp رو از روی سیستم سرور بخوانید.
یا حق

----------


## oghab

با سلام
برنامه اي كه قبلا گذاشته بودم نواقص و ايراداتي داشت كه بيشتر دوستان به اين موضوع اشاره كرده بودند كه وقتي دوباره " گرفتن پشتيبان" را مي‌زنيم. تشخيص نميده فايل وجود داره و فايلي با همون اسم قبلي ساخته ميشه با حجم چند برابر.
منم تو اين مدت سال همت نكردم درستش كنم. البته كار ساده ايه هم هست.
حالا يه مقدار تغييرات دادم و اين مشكل را برطرف كردم.
البته هنوز جاي كار زيادي داره. در برنامه فعلي وقتي فايلي با اون اسم وجود داشته باشه پيغام ميده كه اسم ديگه اي انتخاب كنيد ولي شما ميتونيد اين امكان را هم اضافه كنيد كه بپرسه مي خواهيد replace بشه يا مي‌خواهيد خود برنامه rename كنه و مثلا _2 به اسم فايل اضافه كنه.
خلاصه اينكه هنوز اين برنامه نواقصي داره كه ديگه هر جور دوست داشتين تغييرش بدين.


**************************************************  *********

نياز به يك adocommand داريد كه ارتباطش را با دلفي برقرار كنيد.
و یک shellTreeView یا یک ابزار دیگر شبیه آن براي انتخاب مسيري كه مي خواهيد فايل بك آپ آنجا ذخيره بشه.
يك edit براي وارد كردن نام فايل (edit1)
يك speedbutton براي ساخت نام پيش فرض فايل بك آپ )ميتونه button يا bitbtn هم باشه. هيچ فرقي نداره)
تو رويداد كليكش نوشته بشه 

procedure TFrmBackup.SpeedButton1Click(Sender: TObject);
var
  s,s1,s2,s3:string;
begin
  s:=PrintNormal;
  s1:=copy(s,1,4);
  s2:=copy(s,6,2);
  s3:=copy(s,9,2);
  edit1.text:='backup'+s1+'_'+s2+'_'+s3;
end;

من invisible ش كردم. و از فرم اولي كه مي خوام وارد اين فرم بشم. مجازا كليكش ميكنم.

procedure TForm1.Button1Click(Sender: TObject);
begin
FrmBackup.show;
FrmBackup.SpeedButton1.Click;
end;

و يك button براي اجراي كد گرفتن backup كه اين كد توش نوشته شده:

procedure TFrmBackup.Button1Click(Sender: TObject);
var
  str:string;
begin
  str:=ShellTreeView1.Path;
  str:=str+'\'+Edit1.Text;
  if FileExists(str)  then       // check mikone file i ba in esm vojood dare ya na
     begin
      ShowMessage('A file with this name is exists, select another name');
      Edit1.SetFocus;
      end
  else
  begin
      with ADOCommand1 do
        begin
           CommandText:='BACKUP DATABASE MyDataBase TO DISK='+QuotedStr ( str);
           execute
        end;
      ShowMessage('BackUp DataBase has successfully done');
  end;
end;

به جاي MyDataBase اسم database خودتون را بنويسيد

**************************************************  *********

به همين سادگي! بقيه نواقص برنامه را به بزرگي خودتون ببخشيد
موفق باشيد
التماس دعا
فايل نمونه ضميمه مي باشد

----------


## daffy_duck376

> سلام آقای حبیبی . 
> من برنامه شما رو استفاده کردم دستتون درد نکنه . ولی یک مشکلی که هستش اینه که وقتی رو سیستم خودم عمل بک آپ رو انجام میدم در زمان restore فایل ایجاد شده در یک سیستم جدید که نسخه msde روی اون نصبه با پیغام خطایی مواجه مشم که از فقدان فایل mdf ناشی میشه . اگه میشه شما یا بقیه دوستان منو راهنماییم کنین که چه کار کنم ؟


با اجازه دوستان
برایrestore کردن باید یک بانک به همون نام روی SQL باشه مگر نه RESTORE نمی کنه
شما میتو نید با دستور CREATE DATA BASE یک دیتابیس خالی ایجاد کنید بعد RESTOR کنید

----------


## سيد مجتبي هاشمي

با استفاده از کد زیر Backup میگیرم ولی اگه دوباره بخوام Backup بگیرم و روی همون قبلی باشه یعنی اسم و محل ذخیره شدنش رو عوض نکنم حجم Backup  گرفته شده دو برابر میشه. در یکی از تاپیکها آریوبرزن گفته بود باید از کلمه differential استفاده کرد اما نگفته بودن کجا باید استفاده بشه. لطفا اگه میتونید کمک کنید تا این مشکل رو حل کنم. ممنون.


procedure TMain.N34Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
  begin
    with ADOCommand1 do
    begin
      CommandText:='BACKUP DATABASE photographer TO DISK='+QuotedStr(SaveDialog1.FileName);
      execute
    end;
      ShowMessage('پشتیبان گیری با موفقیت انجام شد');
  end;
end;

----------


## سيد مجتبي هاشمي

لطفا میشه بگید از این کلمه یعنی کلمه differential باید در کجای کد زیر استفاده بکنم؟

procedure TMain.N34Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
  begin
    with ADOCommand1 do
    begin
      CommandText:='BACKUP DATABASE photographer TO DISK='+QuotedStr(SaveDialog1.FileName);
      execute
    end;
      ShowMessage('پشتیبان گیری با موفقیت انجام شد');
  end;
end;

----------


## سيد مجتبي هاشمي

آقای کشاورز شما خودتون نمیتونید یک جواب کامل برای این مشکل ارائه بدین تا مشکل من هم حل بشه؟

----------


## merced

يه سر به Help مي زدي


BACKUP DATABASE { database_name | @database_name_var } 
TO < backup_device > [ ,...n ] 
[ WITH 
    [ BLOCKSIZE = { blocksize | @blocksize_variable } ] 
    [ [ , ] DESCRIPTION = { 'text' | @text_variable } ] 
    [ [ , ] DIFFERENTIAL ] 
    [ [ , ] EXPIREDATE = { date | @date_var } 
        | RETAINDAYS = { days | @days_var } ] 
    [ [ , ] PASSWORD = { password | @password_variable } ] 
    [ [ , ] FORMAT | NOFORMAT ] 
    [ [ , ] { INIT | NOINIT } ] 
    [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ] 
    [ [ , ] MEDIANAME = { media_name | @media_name_variable } ] 
    [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] 
    [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ] 
    [ [ , ] { NOSKIP | SKIP } ] 
    [ [ , ] { NOREWIND | REWIND } ] 
    [ [ , ] { NOUNLOAD | UNLOAD } ] 
    [ [ , ] RESTART ] 
    [ [ , ] STATS [ = percentage ] ] 



[/code]
   CommandText:='BACKUP DATABASE photographer TO DISK='+QuotedStr(SaveDialog1.FileName) + '   WITH DIFFERENTIAL ';
[code]

 ولي اين مشکلت رو حل نمي کنه با يه DeleteFile ساده Backup قبلي رو پاک کن.
يه پيشنهاد. Backup  ها رو با اسمي که از  تاريخ و ساعت سيستم ميگيري ذخيره کن . چه بسا روزي روزگاري به Backupي در سه هفته پيش نياز داشتي.

----------


## سيد مجتبي هاشمي

CommandText:='BACKUP DATABASE photographer TO DISK='+QuotedStr(SaveDialog1.FileName) + '   WITH DIFFERENTIAL ';

 ولي اين مشکلت رو حل نمي کنه با يه DeleteFile ساده Backup قبلي رو پاک کن.
يه پيشنهاد. Backup  ها رو با اسمي که از  تاريخ و ساعت سيستم ميگيري ذخيره کن . چه بسا روزي روزگاري به Backupي در سه هفته پيش نياز داشتي.[/quote]


با تشکر از شما ولی همون طور که گفتین این مشکلم رو حل نکرد. در ضمن میشه در مورد کدهایی که از Help دلفی گرفتین و اینجا نوشتین توضیح بدین؟ ممنون میشم.

----------


## استاد عشق

سلام...
من دقیقاً این تاپیک رو بررسی کردم!
نمونه برنامه ها رو هم دانلود کردم که پست 20 از همه برام راحت تر بود!
اما من دقیقاً از همون روش استفاده می کنم و این اررور رو برام نشون میده! البته فایل پشتیبان رو درست میکنه ولی موقع بازیابی اطلاعات مشکل دارم (عکس ضمیمه)!

لطفاً منو هم راهنمائی کنید! ممنون

----------


## سيد مجتبي هاشمي

با کد زیر که همون کد آقای عقاب هست و من یه کم تغییرش دادم میتوننین به طور کامل از بانک برنامه پشتیبان بگیرین. روی فرم یک ShellTreeView و یک ADOCommand و یک Button قرار بدین. روی Button دو بار کلیک کنید و کد زیر را بنویسید. فایل پشتیبان گرفته شده در محلی که انتخاب میکنید با نامی که از ساعت و تاریخ جاری سیستم تشکیل شده ذخیره میشود.


procedure TBackup.Button1Click(Sender: TObject);
var
  str,s,s1,s2,s3,t,t1,t2,t3,t4 : string;
begin
  try
    str := ShellTreeView1.Path;
    
    s := DateToStr(Date);
    s1 := copy(s,1,4);
    s2 := copy(s,6,2);
    s3 := copy(s,9,2);
    s := 'backup_'+s1+'_'+s2+'_'+s3;

    t := TimeToStr(time);
    t1 := copy(t,1,2);
    t2 := copy(t,4,2);
    t3 := copy(t,7,2);
    t4 := copy(t,10,7);
    t := ' in clock '+t1+'-'+t2+'-'+t3+' '+t4;

    str := str+'\'+s+t;
    with ADOCommand1 do
    begin
      CommandText:='BACKUP DATABASE photographer TO DISK='+QuotedStr(str);
      execute
    end;
    ShowMessage('پشتیبان گیری با موفقیت انجام شد');
  except
MessageDlg('در پشتیبان گیری خطا رخ داده است. لطفا دوباره سعی کنید',mtError,[mbOK],0);
  end;
end;


اگه این کد مشکلی داشت شما بگید من با کمال میل میپذیرم.

----------


## استاد عشق

> با کد زیر که همون کد آقای عقاب هست و من یه کم تغییرش دادم میتوننین به طور کامل از بانک برنامه پشتیبان بگیرین. روی فرم یک ShellTreeView و یک ADOCommand و یک Button قرار بدین. روی Button دو بار کلیک کنید و کد زیر را بنویسید. فایل پشتیبان گرفته شده در محلی که انتخاب میکنید با نامی که از ساعت و تاریخ جاری سیستم تشکیل شده ذخیره میشود.
> 
> 
> اگه این کد مشکلی داشت شما بگید من با کمال میل میپذیرم.


 
آقا خوبه من گفتم Sample رو دانلود و از همون روش استفاده می کنم! 
آخه عزیز من شما که فقط اسم فایل رو تغییر دادی! مشکل اسم فایل نیست؛ 
Error رو نگاه کنید؛ بعدش به Backup Log Database توی اینجا نگاه کنید :http://www.datasprings.com/Resources...S/Default.aspx

من فقط نمیدونم اصلاً مشکل از بزرگی یا اندازه Database هستش که اون error رو موقع Restor میده یا نه؟! اگه هست چطوری باید Backup Log Database... رو بکار ببرم؟!

----------


## matinebi

اگه امکان داره یک sample برای گرفتن بکاپ و رستور (فقط برای یک سیستم)که زمانی بکاپ میگیریم حجم فایل بکاپ 2 برابر نشه و بشه اسم اون رو از تاریخ سیستم گرفت قرار دهید

با تشکر فراوان

----------


## daffy_duck376

با اجازه دوستان 
حجم BACKup  رو که ما تعیین نمی کنیم چون ما فقط با دستورات SQL  به SQL SERVER  فرمان پشتیبانگیری رو میدیم . شما میتونید با توابعی که برای ZIP  کردن فایله تو دلفی هست انو ZIP کنی تا حجمش کم بشه ! برای گرفتن تاریخ سیستم از تابع NOW  برای متغیر  TDATETIME استفاده کنید بقیه هم با روشی که دوستان زحمتشو کشیدن معرفی کردن ادامه بدید

----------

