View Full Version : سوال: مشكل در backup اكسس با كپي فايل
bahoush
یک شنبه 08 آذر 1388, 22:27 عصر
سلام
فايل اكسس من به نام Bank.mdb است و در همان پوشه برنامه قرار داره .
حالا مشكلي كه من دارم اينه كه وقتي از كد زير براي كپي فايل اكسس به قسمتي كه كاربر مد نظر داره استفاده مي كنم :
كپي در مسيرهاي غير پوشه برنامه انجام نميشه ( ولي كپي در پوشه خودش انجام ميشه )
خيلي ممنون
var fileDest: string;
begin
if SaveDialog1.Execute then
begin
fileDest := SaveDialog1.FileName + '.dat';
CopyFile( 'Bank.mdb', pchar(fileDest) , false );
end;
alinikaein
دوشنبه 09 آذر 1388, 08:36 صبح
سلام دوست عزيز؛
فكر كنم به خاطر اين هست كه شما مسير فايل مبدأ را به درستي مشخص نميكنيد. از كد زير استفاده كنيد، انشاءالله مشكلتون حل ميشه:
var
fileDest: string;
begin
if SaveDialog1.Execute then
begin
fileDest := SaveDialog1.FileName + '.dat';
CopyFile(PChar(ExtractFilePath(Application.ExeName ) + 'Bank.mdb'), pchar(fileDest) , false );
end;
end;
يا علي... موفق باشيد...
حسین شهریاری
دوشنبه 09 آذر 1388, 08:59 صبح
سلام
دوست عزیز من یه یونیت کامل نوشتم و آماده دارم اگه مشکلتون حل نشد لینجا اعلام کنین تا براتون بفرستم.اون موقه کافیه شما یونیت مربوطه را توی پروژه خودتون Add کنین.
bahoush
دوشنبه 09 آذر 1388, 08:59 صبح
خيلي ممنون ، مشكلم كپي كردن فايل Bank.mdb حل شد
ولي يه مشكل ديگه:
وقتي فايلم رو جايي كپي ميكنم درست ذخيره ميشه ولي دفعه بعد كه مي خوام روي همان فايل كپي كنم يه dat به ته اسم فايل اضافه ميشه ( Bank - Bank.dat - Bank.dat.dat )
در صورتي كه من مي خوام روي همان فايل انخاب شده دوباره كپي بشه.
« من با دلفي 2009 كار ميكنم ، اگه كسي نمونه فايل backup گيري درست از Access رو در اينجا قرار بده ممنون ميشم»
حسین شهریاری
دوشنبه 09 آذر 1388, 13:56 عصر
دوست عزیز برای رفع این مشکل شما بیاین و کنترل کنید اگه توی اون مسیر فایل وجود داشت اول حذفش کنین بعد بک آپ بگیرید(عمل کپی را انجام بدید)
if FileExist(Path+fileName) then
DeleteFile(Path+fileName)
این دو دستور باید قبل از دستور کپی قرار بگیرند
اگه حل نشد بگین تا اون یونیتا براتون قرار بدم
موفق باشید
bahoush
دوشنبه 09 آذر 1388, 14:39 عصر
var fileDest: string;
begin
if SaveDialog1.Execute then
begin
fileDest := SaveDialog1.FileName;
if FileExists(fileDest) then DeleteFile(fileDest);
CopyFile(PChar(ExtractFilePath(Application.ExeName ) + 'Bank.mdb'), pchar(fileDest + '.dat') , false );
end;
كدي كه گفتي رو اضافه كردم ولي مشكلم همچنان باقي است و فقط فايل قبلي رو پاك مي كنه ، و همچنان مشكل dat اضافه كردن به انتهاي فايل هنوز سر جاشه.
alinikaein
سه شنبه 10 آذر 1388, 08:50 صبح
سلام دوست عزيز؛
احتمالاً شما توي SaveDialog تنظيم كرديد كه پسوند پيشفرض فايلها .dat باشه. به خاطر همين يه بار dat را درون SaveDialog به اسم فايل اضافه ميكنه و يك بار هم شما موقع ذخيره كردن اين كار را ميكنيد.
هنگام ذخيره كردن، نميخواد dat را اضافه كنيد.
يا علي... موفق باشيد...
حسین شهریاری
سه شنبه 10 آذر 1388, 09:07 صبح
سلام
من هم با عقیده دوست عزیزم موافقم.شما یا dat بعد از نام فایل را بردارید یا dat پیشفرض savedialog را.
در ضمن تا اونجایی که بنده خبر دارم فلسفه نسخه پشتیبان این هستش که باید تمام نسخه های پشتیبان نگهداری و بایگانی بشن و این کار که شما عقیده دارید(البته خیلی محترم)ولی فنی نیست که برای گرفتن هر بک آپ ، بک آپ قبلی حذف بشه.اصولا برنامه نویسان نسخه های پشتیبانشونا براساس تاریخ و حتی بعضی بر اساس تاریخ و ساعت تهیه میکنند.مثلا من خودم نسخه های پشتیبانما اینطوری اسمشونا میسازم:
Back1228-1028.bak
یعنی:بک آپ بیست و هشت برج اسفند ساعت ده و بیست و هشت دقیقه.
در این صورت اگه حتی یک دقیقه دیگه هم دوباره بک آپ بگیری یه نسخه مجزا میشه.
تاریخ و ساعتا براحتی از سیستم میگیرم و یه رشته باهاش میسازم.
البته این فقط یه توصیه هستش.
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.