Öncelikle her iki bileşen için kullanacağımız özellikleri bir procedure tanımlayalım. Procedremiz aşağıdaki gibi tanımlayalım.
Kod: Tümünü seç
procedure TForm1.OnAyarlar(Service: TIBCustomService);
begin
with Service do
begin
Active := False;
ServerName :='localhost'; {*pc'nin adı veya ip adresi. Ağdaki ve ya kendi pc'niz olabilir. Kendi bilgisayarım olduğu için localhost yazdım*}
Protocol :=TCP; {*Basğlantı protokol tipi. Diğer seçenekler için Bileşeni seçip Object Inspectordan bakabilirsiniz.*}
LoginPrompt := False; {* Şifreyi biz gireceğimiz için False Yapıyoruz.*}
Params.Clear; // Params özelliğini tyemizle
Params.Add('user_name=' +'SYSDBA'); //SYSDBA=kullanıcı adı
Params.Add('password=' + 'masterkey'); //masterkey=Şifre
end; //with
// ProgressBar Özelliklerini ayarla
ProgressBar1.Min:=0;
ProgressBar1.Max:=10;
ProgressBar1.Position:=ProgressBar1.Min;
Panel1.Show;
application.ProcessMessages;
end;

4 Editin OnClick Olayına aşağıdaki ortak kodu yazın.
Kod: Tümünü seç
if opendialog1.Execute then
(sender as tedit).Text:=opendialog1.FileName;
Kod: Tümünü seç
with IBBackupService1 do
begin
//procedureyi çağır.
OnAyarlar(IBBackupService1);
//PrograssBar İçin Gerekli
Verbose := True;
//yedeklenecek veritanaı yolu
DatabaseName :=Edit1.text;
BackupFile.Clear;
{* yedeklemenin yapılacağı konum ve yedek dosyasının adı. ikinci parametre olan =2048 sanırım yedekleme yapılırken verinin kaçar byte olarak kopyalanacağını belirliyor. *}
BackupFile.Add(Edit2.text+' =2048');
try
Active := True;
// yedeklemeye başla
ServiceStart;
while not EOF do
Begin
//yedekleme durumunu labela yaz
Label5.Caption:=GetNextLine;
{*Progresbar özelliklerini ayarla*}
if ProgressBar1.Position=ProgressBar1.Max then
ProgressBar1.Position:=0;
ProgressBar1.Position:=ProgressBar1.Position+1;
application.ProcessMessages;
End;
finally
Active := False;
Panel1.Hide;
end; //try
end; //with
IgnoreLimbo > Belirsizlik Durumda Transactionları gözardı eder.
MetadataOnly > Kayıtları yedek almayıp sadece veritabanını yedekler.
NoGarbageCollection > Silinmiş kayıtlarıda yedekler.
NonTransportable > daha hızlı yedekleme yapar ancak yedek başka platformlarda restore edilmez.
IBRestoreService
Restore buttonunun OnClick olayına aşağıdaki kodu yazın.
Kod: Tümünü seç
with IBRestoreService1 do
begin
//procedureyi çağır.
OnAyarlar(IBRestoreService1);
//PrograssBar İçin Gerekli
Verbose := True;
{* Restore ederken Veritabanının PageeSize
özelliğini ayarla. farklı bir seçeneği seçebilirsiniiz*}
Pagesize:=2048;
//eski veritabanını sil
Options := [Replace];
//yedeklenecek veritanaı yolu
DatabaseName.Clear;
DatabaseName.Add(Edit4.text);
BackupFile.Clear;
{* yedeklemenin yapılacağı konum ve yedek dosyasının adı. *}
BackupFile.Add(Edit3.text);
try
Active := True;
// yedeklemeye başla
ServiceStart;
while not EOF do
Begin
//yedekleme durumunu labela yaz
Label5.Caption:=GetNextLine;
{*Progresbar özelliklerini ayarla*}
if ProgressBar1.Position=ProgressBar1.Max then
ProgressBar1.Position:=0;
ProgressBar1.Position:=ProgressBar1.Position+1;
application.ProcessMessages;
End;
finally
Active := False;
Panel1.Hide;
end; //try
end; //with
DeactivateIndexes > İndexleri tekrar oluşturmaz.
NoValidityCheck > kısıtlamaları oluşturmaz.
Replace > Restore edilen yerde veritabanı varsa üstüne yazar