# Native Code > برنامه نویسی در Delphi > بانک های اطلاعاتی در Delphi > سوال: نسخه پشتيبان از بانك اكسس در دلفي

## mahdisam

با سلام :
من در تايپيك هاي قبل سوالم رو در اين مورد مطرح كردم ولي خيلي خوب متوجه نشدم . 
من يك برنامه ثبت مشخصات جانبازان عزيز را دارم كه عنصر ارتباط اون Adotable هست . 
و من براي ارتباط بانك از دو عنصر Adotable و datasource  استفاده كردم و لي با وجود اين دو عنصر هيچ كاري در مورد بك آپ يا ري استور آن نكردم و در تايپيك هاي قبل و جوابهاي دوستان عزيز در كد هايي كه نوشتند با بودن adoconnection , و بقيه عنصر ها استفاده شد . 

لطفاً كمكم كنيد .

----------


## merced

دوست عزيز. بانك اطلاعاتي اكسس امكاني براي پشتيبان گيري نداره و تنها راه گرفتن كپي از فايل mdb هست. توي دلفي مي توني از دستور CopyFile استفاده كني

----------


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

لطف ميكنيد كدش رو بنويسيد.

----------


## mehdimdp

سلام
اگه فقط بخواین از بانک اکسس یه کپی به عنوان پشتیبان بگیرید این یک خط کد , کار شما رو راه میندازه

CopyFile(yourbank address,new address,true);

----------


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

آدرس فايل اكسس رو بايد كامل بنويسيم يا اينكه فقط نام فايل رو بايد بنويسيم؟

در ضمن هنگام نصب برنامه فايل مورد نظر در هر آدرسي ميتونه قرار بگيره.

----------


## mehdimdp

اگه بانک شما کنار فایل exe (درفولدر یا بدون فولدر) باشه 
با استفاده از دستور 

ExtractFilePath(Application.ExeName)

میتونید آدرس کامل محل اجرای برنامه رو بدست بیاری که بعدش باید نام و (احتمالا) فولدر حاوی بانک رو اضافه کنی

----------


## nilidelphi

دوست گرامی 
اکسس یک دیتابیس است که خود وینذوز آنرا مدیریت می کند در حقیقت DBMS آن 
سیستم عامل است
پس نمی توان در آن کدی برای پشتیبان گیری و بازیابی استفاده کرد ولی با دلفی میشه 
از پایگاه داده اکسس بک آپ گرفت
اما روشی که دوستمان در بالا اشاره کردند زیاد کاربرد نداره
شما میتونین از کد زیر استفاده کنین :
کدی برای بک آپ گیری:
 ADOTable1.savetofile('D:\folder\backup1.bak');کدی برای بازیابی :ADOTable1.loadfromfile('D:\folder\backup1.bak');
البته اینم بگم که اگر با این کد پشتیبان گیری کنید از همه ی اطلاعاتتان پشتیبان می گیرد.

موفق باشید.

 :چشمک:

----------


## سعید صابری

> دوست گرامی 
> اکسس یک دیتابیس است که خود وینذوز آنرا مدیریت می کند در حقیقت DBMS آن 
> سیستم عامل است
> پس نمی توان در آن کدی برای پشتیبان گیری و بازیابی استفاده کرد ولی با دلفی میشه 
> از پایگاه داده اکسس بک آپ گرفت
> اما روشی که دوستمان در بالا اشاره کردند زیاد کاربرد نداره
> شما میتونین از کد زیر استفاده کنین :
> کدی برای بک آپ گیری:
>  ADOTable1.savetofile('D:\folder\backup1.bak');کدی برای بازیابی :ADOTable1.loadfromfile('D:\folder\backup1.bak'); البته اینم بگم که اگر با این کد پشتیبان گیری کنید از همه ی اطلاعاتتان پشتیبان می گیرد.
> ...


اين روش فقط يك فايل به xml اكسپورت  مي كند. بعد هنگام لود اين فايل در حافظه باز مي كند. تاثيري در بانك ندارد. فكر كنم بهترين روش همون روش بالا باشه

----------


## nilidelphi

_دوست عزیز اشتباه می کنید_ 
_با این دستور شما یک فایل با تمام ویژگی های دیتابیستون ایجاد می کنید که به راحتی می توانید بازگردانید._
_من یکبار هم توضیح داده بودم._
_می تونید امتحان کنید ._

_البته اگه بخواین مثل SQL server از همه ی اطلاعات دیتابیس بک آپ بگیره باید از stream  ها استفاده کنید._
_موفق باشید._
 :متفکر:

----------


## farhad110

> _دوست عزیز اشتباه می کنید_ 
> _با این دستور شما یک فایل با تمام ویژگی های دیتابیستون ایجاد می کنید که به راحتی می توانید بازگردانید._


سلام
کدی که شما نوشتید فقط اطلاعات یک جدول رو ذخیره میکنه
برای پشتیبان گیری میتونید یا فایل رو کپی کنید و یا از ابزاری مثل zLib استفاده کنید
موفق باشید

----------


## nilidelphi

خوب عزیزم دیتابیس اکسس نیازی به بگ آپ گیری کامل نذاره یعنی نمیشه
اگه قرار باشه بک آپ از همه چیز گرفته بشه باید برای هر جزء یک کامپوننت در نظر گرفته و ذخیره  کنید

----------


## farhad110

> خوب عزیزم دیتابیس اکسس نیازی به بگ آپ گیری کامل نذاره یعنی نمیشه


نیاز نداره یا نمیشه؟
-نیاز که داره چون درخواست دوستمون همینه
-شدنی هم که هست. توضیح مختصری دادم



> اگه قرار باشه بک آپ از همه چیز گرفته بشه باید برای هر جزء یک کامپوننت در نظر گرفته و ذخیره  کنید


حقیقتش من که متوجه نشدم چی فرمودید. بیشتر توضیح نمیدید!؟

----------


## mehdimdp

به نظر من روش جناب nilidelphi يه جورايي لقمه رو دور سر چرخوندن هستش.

----------


## Emdad2001

> دوست گرامی 
> اکسس یک دیتابیس است که خود وینذوز آنرا مدیریت می کند در حقیقت DBMS آن 
> سیستم عامل است
> پس نمی توان در آن کدی برای پشتیبان گیری و بازیابی استفاده کرد ولی با دلفی میشه 
> از پایگاه داده اکسس بک آپ گرفت
> اما روشی که دوستمان در بالا اشاره کردند زیاد کاربرد نداره
> شما میتونین از کد زیر استفاده کنین :
> کدی برای بک آپ گیری:
>  ADOTable1.savetofile('D:\folder\backup1.bak');کدی برای بازیابی :ADOTable1.loadfromfile('D:\folder\backup1.bak'); 
> ...


سلام .
من از کدهای شما استفاده کردم فقط یه مشکلی داره اینکه وقتی اطلاعات رو بازیابی میکنی ذخیره نمیشه

----------


## Emdad2001

جناب *nilidelphi* میشه بیشتر توضیح بدینچون مشکل من حل نشد همینکه اطلاعات رو باز گردانی میکنم
در بانک اطلاعاتی ذخیره نمیشود

----------


## sara_129

saaoaaaaaaaaaaaaaaaaaaaaaaaaallllllllllll  komaaaaaaaaakkkkkkkkkkkkkkkkkkkkkkk
salam
.yek soal dashtam  dar morede database  dar delphi.
man mikhaham yek barname benevisam ba delphi ba database sql, vali etelaati ke lazem daram dar excel zakhire shode , va be dalile inke etelaat kheyli ziyad hastand emkane vared kardan dar sql nist. raveshi nist ke betonam ertebate excel va sql ra bargharar konam?                           mamnoon misham komakam konid

----------


## Felony

> saaoaaaaaaaaaaaaaaaaaaaaaaaaallllllllllll  komaaaaaaaaakkkkkkkkkkkkkkkkkkkkkkk
> salam
> .yek soal dashtam  dar morede database  dar delphi.
> man mikhaham yek barname benevisam ba delphi ba database sql, vali etelaati ke lazem daram dar excel zakhire shode , va be dalile inke etelaat kheyli ziyad hastand emkane vared kardan dar sql nist. raveshi nist ke betonam ertebate excel va sql ra bargharar konam?                           mamnoon misham komakam konid


دوست عزیز قوانین سایت رو رعایت کن :
هر سوال در تاپیک مجزا ، در ضمن سوال SQL شما به تاپیک Access چه ربطی داره و در آخر هم فارسی بنویسید .

در مورد مشکلتون هم میتونید توسط کامپوننت XLSReadWrite در دلفی با یک فایل اکسل ارتباط برقرار کنید و با چند تا حلقه اطلاعات رو به SQL منتقل کنید .

----------


## pezhvakco

درود :
کاربر گرام :  sara_129

1 ) این سایت فارسی است ، پرسش را فارسی بنویسید .
2) هر پرسش یه تایپیک جدا .
3) ابتدا جستجو بعد تایپیک زدن .
4 ) https://barnamenevis.org/showth...8%B3%D9%84+Sql

فکر خوش .

----------


## nilidelphi

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

البته من قبلنا که از access استفاده میکردم از همین روشی که گفتم استفاده میکردم.

موفق باشید... :قلب:

----------


## danesh1351

دوست عزيز
بهترين روش كپي كردن فايل در مسير پشتيباني است .
و جهت بازيابي سعي كن از كپي و جايگزيني استفاده نكني و از روش فعال نمودن و ايجاد ارتباط با ديتابيس پشتيبان استفاده كني و بعد از ارتباط با فايل پشتيبان يك پيام مناسب براي كاربر بذاري تا متوجه بشه كه برنامه به فايل پشتيبان وصل شده  يا فايل اصلي .

----------


## Emdad2001

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


دوست عزيز من استفاده كردم  از روش شما. مشكلي در پشتيباني و يا باز گرداني نيست مشكل اينجاست كه وقتي برميگردوني تو پايگاه ذخيره نميشه ميتوني الان امتحان كنيد  !!!

با تشكر. :خیلی عصبانی:

----------


## habibjalali

با سلام،
من از بانک اکسسم برای بک آپ گیری با همان روش copy file بک آپ گرفتم ، در ویندوز 7هیچ مشکلی نداره اما در ویندوز 10 نه بک آپ نه ریستور کار نمکند.

----------

