View Full Version : سوال: بك اپ و ريستور
  
amir190d
دوشنبه 11 شهریور 1387, 10:26 صبح
با سلام خدمت دوستان عزيز ببخشيد پست جديد زدم من مقاله تو سايت در مورد بك اپ و  ريستور در بانك dbisam كه  mojgan  گفته بودن را خواندم ولي چيزي نفهميدم و در برنامه ام اجرا نشد اگه دوستان لطف كنند يك كد براي بك اپ و ريستور از بانك dbisam كه كار كنه بگزارند ممنون مي شوم با تشكر:لبخندساده::چشمک:
Hsimple11
دوشنبه 11 شهریور 1387, 11:26 صبح
کدهای آن هم در چند پست قرار داده شده است. چه مشکلی دارید ؟
http://www.barnamenevis.org/forum/showthread.php?t=6600&highlight=backup+dbisam
http://www.barnamenevis.org/forum/showthread.php?t=58732&highlight=backup+dbisam
amir190d
دوشنبه 11 شهریور 1387, 12:16 عصر
Table Name
-------------------------------------
Customers
Orders
Items
  
var
   TablesToRestore: TStrings;
begin
   TablesToRestore:=TStringList.Create;
   try
      with MyDatabase do
         begin
         DatabaseName:='MyDatabase';
         Directory:='d:\temp';
         with TablesToRestore do
            Add('Customers');
         if Restore('d:\temp\'+
                   StringReplace(DateToStr(Date),
                         '/','',[rfReplaceAll])+'.bkp',
                   TablesToRestore) then
            ShowMessage('Restore was successful')
         else
            ShowMessage('Restore failed');
         end;
   finally
      TablesToRestore.Free;
   end;
end;
دوست عزيز من اين كد در يك كليد نوشتم ولي 2 تا 3 تا ارور مي گيره يكي اينكه مي گه
 mydatabase  چيزي به اين نام وجود نداره بعد مي گه databasename&directory&backup چيزي به اين صورت نيست اگه درست منظورش فهميده باشم اگه مي شه به من كه مبتدي هستم كمك كنيد ت بتونم بك اپ و ريسور در برنامه ام ايجاد كنم با تشكر از شما
amir190d
دوشنبه 11 شهریور 1387, 12:33 عصر
در ضمن دوست عزيز اين پيغام خطا را داد   cannot perform this operation on an open dataset
Hsimple11
دوشنبه 11 شهریور 1387, 12:46 عصر
دوست گرامی، هر برنامه یا کدی را که می بینید باید با برنامه خود تطبیق دهید. جایگزین کردن نام کنترلها و توابعی که در هر برنامه اومده، باید با اسامی کنترلها و توابع تعریف شده شما عوض شود. مثلا در این کد بجای MyDataBase باید نام دیتابیس خودتون رو قرار بدید. همینطور در مورد فیلدها، مسیر ها و ...
در مورد پیغام خظا هم بایستی قبل از انجام هرگونه ویرایشی بر روی جدول خود آن را باز (Open) یا Active کنید.
و برای انجام اعمالی نظیر Restore باید دیتاست شما Close یا InActive باشد.
موفق باشید.
amir190d
دوشنبه 11 شهریور 1387, 12:57 عصر
دوست عزيز خيلي ممنون كه سوالات بي محتواي من را جواب مي دهي من اين كار را كردم ولي در قسمت بك  اپ يك ارور داد dbisam engine error 11010  table or back up file 'customers does not exist
Hsimple11
دوشنبه 11 شهریور 1387, 13:03 عصر
خيلي ممنون كه سوالات بي محتواي من را جواب مي دهي
نباید این حرف رو بزنید. همگی در این سایت برای حل مشکلات هم در هم جمع شدند. هرکی هرچیزی بلده در اختیار بقیه قرار میده . بنابراین کسی به دیگری برتری نداره.
ببینید سعی کنید در مورد ساخت یک برنامه بانک اطلاعاتی مطالعه کنید. منابع کتاب فارسی یا همین سایت یا سایتهای آموزشی به زبان انگلیسی وجود دارد. 
در این مثال یک جدول داریم با سه فیلد. که شما باید اون رو با جدول و فیلدهای خودتون بنویسید. مثلا فیلد Customers رو ندارید و فیلد خودتون رو جایگزین کنید.
amir190d
دوشنبه 11 شهریور 1387, 16:20 عصر
دوست عزيز من اين كدي كه بود به اينصورت نوشتم ولي باز هم همون ارور اولي را مي ده مي شه بررسي كنيد و درستش برام قرار بديد در ضمن اسم تيبل من هست new1 و اسم بانكم new1
    
procedure TForm17.Button1Click(Sender: TObject);
var
   TablesToBackup: TStrings;
begin
   TablesToBackup:=TStringList.Create;
   try
   Form2.DBISAMTable1.Active:=true;
      with Form2.DBISAMTable1 do
         begin
        Form2.DBISAMTable1.DatabaseName:='new1';
         Form2.DBISAMTable1.Database.Directory:='C:\newfold er1';
         with TablesToBackup do
            begin
            Add('new1');
            end;
         if form2.DBISAMTable1.Database.Backup('c:\newfolder2' +
                   StringReplace(DateToStr(Date),
                         '/','',[rfReplaceAll])+'.bkp',
                   'Daily Backup for '+DateToStr(Date),6,
                   TablesToBackup) then
            ShowMessage('Backup was successful')
         else
            ShowMessage('Backup failed');
         end;
   finally
      TablesToBackup.Free;
   end;
end;
با تشكر از لطفتان
amir190d
دوشنبه 11 شهریور 1387, 18:38 عصر
كسي از دوستان نيست من كمك كنه در مورد كد بالا؟
Hsimple11
دوشنبه 11 شهریور 1387, 19:14 عصر
چه کمکی؟!
از این کد واضح تر :
var
   TablesToBackup: TStrings;
begin
   TablesToBackup:=TStringList.Create;
   try
      with MyDatabase do
         begin
         DatabaseName:='MyDatabase';
         Directory:='d:\temp';
         with TablesToBackup do
            begin
            Add('Customers');
            Add('Orders');
            Add('Items');
            end;
         if Backup('d:\temp\'+
                   StringReplace(DateToStr(Date),
                         '/','',[rfReplaceAll])+'.bkp',
                   'Daily Backup for '+DateToStr(Date),6,
                   TablesToBackup) then
            ShowMessage('Backup was successful')
         else
            ShowMessage('Backup failed');
         end;
   finally
      TablesToBackup.Free;
   end;
end;
ببینید چه قسمتهایی را باید جایگزین کنید.
amir190d
دوشنبه 11 شهریور 1387, 20:46 عصر
دوست عزيز به لطف شما درست شد خيلي خيلي ممنون كه به من مبتدي كمك كرديد ولي يك مشكل كوچك وجود دارد اونم اينكه در كد دوستمانmojgan استفاده كردم ولي در اخر كدش يك خط وجود داشت كه اطلا نه در دلفي هست نه در dbisam بجاش چي بزارم اينم كد
      ActiveDataSets(False,true)
Hsimple11
دوشنبه 11 شهریور 1387, 23:29 عصر
تابع خاصی نیست. فقط دیتاست های شما را Active میکند.  میتونید بجاش خاصیت Active دیتاست خودتون رو True کنید. یا اون رو Open کنید.
amir190d
سه شنبه 12 شهریور 1387, 02:32 صبح
سلام دوست عزيز واقعا شرمنده كه اينقدر سوال مي كنم  دارم ديونه مي سم حالا كه بك اپ درست شود تو ريستور گير مي ده من اين كد نوشتم اينم پيغام خطا خواهش مي كنم اينو كمكم كنيد ت اين پروژ هام تموم بشه با تشكر فراوان از شما
                                        procedure TForm18.Button1Click(Sender: TObject);
var
   ListOfTablesBackUp:Tstrings;
begin
     try
       if OpenDialog1.Execute then
       begin
          ListOfTablesBackUp:=TStringList.Create;
          ListOfTablesBackUp:=TStringList.Create;
          ListOfTablesBackUp.Add('abfa1');//0
         // ListOfTablesBackUp.Add('Com');//1
          //... and other table
          with Form2.DBISAMDatabase1 do
          begin
             // Form2.DBISAMDatabase1.Close;//this function close all tables
              form2.DBISAMDatabase1.Connected:=false;
                form2.DBISAMDatabase1.Directory:=ExtractFileDir(Ap plication.ExeName)+'C:newfolder1';//path of database folder
                form2.DBISAMDatabase1.Open;
                form2.DBISAMDatabase1.Connected:=true;
                //only if use  DBISAMUpdateSQL component use
                {MainForm.DBISAMUpdateSQL1.SQL[ukDelete].Clear;
                MainForm.DBISAMUpdateSQL1.SQL[ukModify].Clear;
                MainForm.DBISAMUpdateSQL1.SQL[ukInsert].Clear;}
                if form2.DBISAMDatabase1.Restore(OpenDialog1.FileName ,ListOfTablesBackUp) then
                begin
                  ShowMessage('ÚãáíÇÊ ÈÇÒíÇÈí ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ, ')
                end
                else
                begin
                   ShowMessage('ÚãáíÇÊ ÈÇÒíÇÈí ÈÇ Ô~ÓÊ ãæÇÌå ÔÏ');
                 //  Form2.DBISAMDatabase1.Close;//Close all tabales
                end;
          end;
          ListOfTablesBackUp.Free;
       end;
    
    except
      ShowMessage('ÚãáíÇÊ ÈÇÒíÇÈí ÈÇ Ô~ÓÊ ãæÇÌå ÔÏ');
    end;
end;
اينم پيغام خطا      dbisam engine error #11047 unknown operating system error  11047 occurred  with the table  or backup file c:\newfolder1 'dbisam.lck" . process stopped
amir190d
سه شنبه 12 شهریور 1387, 11:15 صبح
كس از دوستان مي تونه اين مشكل منو بر طرف كنه؟
Hsimple11
سه شنبه 12 شهریور 1387, 12:13 عصر
مسیر فایل BackUp خود را درست وارد کرده اید؟
amir190d
سه شنبه 12 شهریور 1387, 13:31 عصر
بله دوست عزيز مسير درستهه در ضمن من opendialog گزاشتم نمي دونم حالا چه كار كنم؟
amir190d
سه شنبه 12 شهریور 1387, 15:45 عصر
مثل اينكه كسي نميتونه  عيب اين قسمت پيدا كنه فكر كنم بايد بي خيال ؟؟؟؟؟
Hsimple11
سه شنبه 12 شهریور 1387, 16:43 عصر
این خطا ناشی از ناسازگاری سیستم عامل شما با DBISAM است. شاید با تعویض نسخه آن حل شود.
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.