Mojgan110
جمعه 15 دی 1385, 12:36 عصر
سلام.
من هم راهنمای dbisam قسمت مربوط به بک آپ/ریستور را خوندم و هم توی سایت سرچ کردم و این تاپیک (http://barnamenevis.org/forum/showthread.php?t=13109&highlight=dbisam+restore)را هم دیدم ولی مشکل دارم هنوز !
http://m1.freeshare.us/126fs4629371_th.png (http://m1.freeshare.us/view/?126fs4629371.png)
ظاهرا" مشکل وقتی پیش میاد که میخوام Resotre کنم . خطایی هم که میگیره DBISAM_OSEACCESS #11013 هست که در راهنمای dbisam برای این خطا گفته بود که مجوز بازکردن فایل بک آپ را نداریم. چون شاید توسط کس دیگری بصورت Exclusive باز شده یا دایرکتوری Read Only هست .
من فایل بک آپی که به کمک دستور Backup تولید کرده بودم را با Notepad !! نگاهش کردم . در سطر اولش نوشته بود که :
ODB Version 1.0 Backup tbContent tbArchive
tbContent.dat
خب ! اون ODB Version و ... که همان Description هست که موقع بک آپ گرفتن ، خودم بهش یاد دادم !! بعدش هم اسم دوتا جدولی هست که واسه بک آپ گرفتن بهش معرفی کردم یعنی tbContent , tbArchive .. ولی میبینید که خودش یکدونه tbContent.dat هم اضافه کرده که غلط کرده اضافه کرده !! مشکلی که توی ریستور پیش میاد هم فکر میکنم از همین باشه . این دیگه از کجا اومده ؟
من پردازه های بک آپ و ریستوری که استفاده کردم را هم مینویسم اینجا که اگر فرصت کردید ، لطفا بررسی کنید و ببینید مشکل از چی میتونه باشه ؟
ممنون.
بک آپ :
procedure TfrmODF.bbtnBackupClick(Sender: TObject);
var
TablesToBackup: TStrings;
BackupTo: String;
BackupEsm: String;
begin
if(SaveDialog1.Execute) then
begin
BackupTo:= SaveDialog1.FileName;
BackupEsm:= StringReplace(BackupTo,'.bkp','',[rfReplaceAll]);
BackupEsm := BackupEsm+ '.bkp';
TablesToBackup:= TStringList.Create;
TablesToBackup.Add('tbContent');
TablesToBackup.Add('tbArchive');
ProgressBar1.Visible:= True;
DataModule2.tbArchive.Close;
DataModule2.tbContent.Close;
DataModule2.tbSerch.Close;
if(DataModule2.DB.Backup(BackupEsm,'ODB Version 1.0 Backup',6,TablesToBackup)) then
ShowMessage('Backup Progress Finished Successfully.')
else
ShowMessage('ERROR in Backup Progress.');
TablesToBackup.Free;
ProgressBar1.Visible:= False;
DataModule2.tbArchive.Open;
DataModule2.tbContent.Open;
DataModule2.tbSerch.Open;
end;
end;
ریستور :
procedure TfrmODF.bbtnRestoreClick(Sender: TObject);
Var
TablesToRestore: TStrings;
RestoreFrom: String;
RestoreEsm: String;
begin
if(OpenDialog1.Execute) then
begin
RestoreFrom:= OpenDialog1.FileName;
RestoreEsm:= StringReplace(RestoreFrom,'.bkp','',[rfReplaceAll]);
RestoreEsm:= RestoreEsm + '.bkp';
TablesToRestore:= TStringList.Create;
TablesToRestore.Add('tbContent');
TablesToRestore.Add('tbArchive');
ProgressBar1.Visible:= True;
DataModule2.tbContent.Close;
DataModule2.tbArchive.Close;
DataModule2.tbSerch.Close;
if(DataModule2.DB.Restore(RestoreEsm,TablesToResto re)) then
ShowMessage('Restore progress finished successfully.')
else
ShowMessage('ERROR in Restore progress.');
ProgressBar1.Visible:= False;
TablesToRestore.Free;
DataModule2.tbContent.Open;
DataModule2.tbArchive.Open;
DataModule2.tbSerch.Open;
end;
end;
من هم راهنمای dbisam قسمت مربوط به بک آپ/ریستور را خوندم و هم توی سایت سرچ کردم و این تاپیک (http://barnamenevis.org/forum/showthread.php?t=13109&highlight=dbisam+restore)را هم دیدم ولی مشکل دارم هنوز !
http://m1.freeshare.us/126fs4629371_th.png (http://m1.freeshare.us/view/?126fs4629371.png)
ظاهرا" مشکل وقتی پیش میاد که میخوام Resotre کنم . خطایی هم که میگیره DBISAM_OSEACCESS #11013 هست که در راهنمای dbisam برای این خطا گفته بود که مجوز بازکردن فایل بک آپ را نداریم. چون شاید توسط کس دیگری بصورت Exclusive باز شده یا دایرکتوری Read Only هست .
من فایل بک آپی که به کمک دستور Backup تولید کرده بودم را با Notepad !! نگاهش کردم . در سطر اولش نوشته بود که :
ODB Version 1.0 Backup tbContent tbArchive
tbContent.dat
خب ! اون ODB Version و ... که همان Description هست که موقع بک آپ گرفتن ، خودم بهش یاد دادم !! بعدش هم اسم دوتا جدولی هست که واسه بک آپ گرفتن بهش معرفی کردم یعنی tbContent , tbArchive .. ولی میبینید که خودش یکدونه tbContent.dat هم اضافه کرده که غلط کرده اضافه کرده !! مشکلی که توی ریستور پیش میاد هم فکر میکنم از همین باشه . این دیگه از کجا اومده ؟
من پردازه های بک آپ و ریستوری که استفاده کردم را هم مینویسم اینجا که اگر فرصت کردید ، لطفا بررسی کنید و ببینید مشکل از چی میتونه باشه ؟
ممنون.
بک آپ :
procedure TfrmODF.bbtnBackupClick(Sender: TObject);
var
TablesToBackup: TStrings;
BackupTo: String;
BackupEsm: String;
begin
if(SaveDialog1.Execute) then
begin
BackupTo:= SaveDialog1.FileName;
BackupEsm:= StringReplace(BackupTo,'.bkp','',[rfReplaceAll]);
BackupEsm := BackupEsm+ '.bkp';
TablesToBackup:= TStringList.Create;
TablesToBackup.Add('tbContent');
TablesToBackup.Add('tbArchive');
ProgressBar1.Visible:= True;
DataModule2.tbArchive.Close;
DataModule2.tbContent.Close;
DataModule2.tbSerch.Close;
if(DataModule2.DB.Backup(BackupEsm,'ODB Version 1.0 Backup',6,TablesToBackup)) then
ShowMessage('Backup Progress Finished Successfully.')
else
ShowMessage('ERROR in Backup Progress.');
TablesToBackup.Free;
ProgressBar1.Visible:= False;
DataModule2.tbArchive.Open;
DataModule2.tbContent.Open;
DataModule2.tbSerch.Open;
end;
end;
ریستور :
procedure TfrmODF.bbtnRestoreClick(Sender: TObject);
Var
TablesToRestore: TStrings;
RestoreFrom: String;
RestoreEsm: String;
begin
if(OpenDialog1.Execute) then
begin
RestoreFrom:= OpenDialog1.FileName;
RestoreEsm:= StringReplace(RestoreFrom,'.bkp','',[rfReplaceAll]);
RestoreEsm:= RestoreEsm + '.bkp';
TablesToRestore:= TStringList.Create;
TablesToRestore.Add('tbContent');
TablesToRestore.Add('tbArchive');
ProgressBar1.Visible:= True;
DataModule2.tbContent.Close;
DataModule2.tbArchive.Close;
DataModule2.tbSerch.Close;
if(DataModule2.DB.Restore(RestoreEsm,TablesToResto re)) then
ShowMessage('Restore progress finished successfully.')
else
ShowMessage('ERROR in Restore progress.');
ProgressBar1.Visible:= False;
TablesToRestore.Free;
DataModule2.tbContent.Open;
DataModule2.tbArchive.Open;
DataModule2.tbSerch.Open;
end;
end;