1 ضمیمه
آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
سلام
(براي ديدن نسخه جديد restore كردن به صفحه دوم برويد و يا لينك زير را ببنيد:
https://barnamenevis.org/showth...052#post624052
و گرفتن backup از پايگاه داده در sql توسط دلفي لينك زير را
https://barnamenevis.org/showthread.php?t=32985
اين پرانتز در تاريخ 9 آبان 87 اضافه شد)
به این روش می تونید با استفاده از backup ای را که database تون تو sql گرفتید. توسط یک برنامه دلفی ساده databse را در sql در كامپيوتر ديگري ساخته و توسط همین برنامه با تمام table های دورنش و اطلاعات آنها restore کنید
یک adoconneciton روی فرم بگذارید! سپس روی سه نقطه خصوصیconncetion string کلیک کرده. build کلیک کرده. microsoft OLE DB Provider for SQL Server را ناتخاب کرده و next بزنید و use windows Nt را انتخاب کنید و next بزنید! test conection و ok و ok
سپس یک adocommand روی فرم بگذارید. و خصوصیت connection آنرا را برابر adoconnection1 انتخاب کنید.
یک button برای ساخت database ویکی برای restore در نظر بگیرید!
در رویداد کلیک buuton اول این کد را بنویسید!
procedure TForm1.Button1Click(Sender: TObject);
begin
with ADOCommand1 do
begin
CommandText:='CREATE DATABASE mydatabase1';
execute
end;
ShowMessage(' پایگاه داده موفقیت آمیز ساخته شد');
end;
البته به جای mydatabase1 نام database خودتان را بنویسید!
در همان فولدری که exe این برنامه را قرار می دهید. backup مورد نظر را نیز قرار دهید!
و دو رویداد کلیک button دوم این کد را بنویسید!
procedure TForm1.Button2Click(Sender: TObject);
var
s:string;
begin
s:=ExtractFilePath( Application.ExeName );;
s:=s+'MYBACKUP';
with ADOCommand1 do
begin
CommandText:='RESTORE DATABASE mydatabase1 FROM DISK='+QuotedStr (s);
execute
end;
ShowMessage('فایل پشتیبان موفقیت آمیز احیا شد');
end;
ایبته به جای mybackup نام backup خودتان را بنویسید!
و به جای mydatabase1 اسم database خودتون را!
این برنامه را تازه ساختم. و تا جایی چک کردم درست بود! ولی اگه هر ایراد و انتقادی باشه با کمال میل می پذیرم.
موفق باشید!
نمونه برنامه را هم ضمیمه کردم!
موفق باشید!
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
خیلی عالی بود
منتظر يك همچين نكته هاي نابي هستم
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
خوب بود ...
ای بابا تو این سایت هم فرق می زارند حالا اگه ما یه مقاله یا آموزش گذاشته بودیم که شصتا اطلاعیه و انتقاد و تذکر و تهدید میومد که بار آخرت باشه و حرفهای دیگه
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
نقل قول:
خوب بود ...
ای بابا تو این سایت هم فرق می زارند حالا اگه ما یه مقاله یا آموزش گذاشته بودیم که شصتا اطلاعیه و انتقاد و تذکر و تهدید میومد که بار آخرت باشه و حرفهای دیگه
اولا ما با کسی اینجا پدرکشتگی نداریم!
ثانیا اینجا محل مطرح کردن انتقادها نیست!
ثالثا، به تاریخ ایجاد تاپیک (سال 84) دقت کنید.
رابعا، این بنده خدا در حدود یک پاراگراف توضیح نوشته + یک سورس کد تا مسئله و راه حل آن را توضیح بده. مشکل تاپیک های شما این بود که عنوان "مقاله" داشتند، ولی در آنها هیچ مطلبی جزء یک سورس کد وجود نداشت. به همین دلیل هم از شما خواسته شد که اینگونه مطالب را که جنبه نکته دارند، در تاپیک نکات مطرح کنید.
همینجا یک نکته را هم به شما تذکر بدم؛ دوست عزیز، ارسال پست های بی خود برای بالا آوردن تاپیک در این سایت خلاف قوانین هست. شما عادت کردید که هر چند وقت که یکی از تاپیک هاتون بی جواب میمونه، یک پست بی ربط در اون تاپیک میزنید و تاپیک را بالا میارید! تا بحال چندین بار اینگونه پست های شما پاک شده، ولی باز هم توجه نمی کنید. اگر این روند ادامه داشته باشه، مطابق قوانین سایت بابت ارسال اینگونه پست ها جریمه و امتیاز منفی دریافت می کنید!
اگر می خواید تاپیکی را که به جواب نرسید، بالا بیارید، در پست جدید خود به نکات جدیدی که در اون زمینه خودتان در این مدت آزمایش کردید، یا به آنها پی بردید، بپردازید، یا توضیحات بیشتری درباره سوال خود مطرح کنید، نه اینکه مطالبی مثل "همچنان منتظریم"، "کسی نبود؟!" و... ارسال کنید.
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
سلام از شما تشکر می کنم ولی این کد یک مشکل دیگر نیز به نظر می رسد که اون Backup روی شبکه می باشد. اگر شما دستور پشتیبان را روی یک کلاینت اجرا کنید نسخه پشتیبان بر روی سرور ساخته می شود.
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
سلام به تمام اساتید این برنامه میشه بانکش اکسس باشه میشه در این رابطه هم مثالی بزنید
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
سلام
اين فقط يه نمونه برنامه ساده است و خيلي ايرادها و نقصها مي تونه داشته باشه
و هر كس بنا به نياز خودش ميتونه هر قسمتي اش را تغييرش بده
موفق باشيد
1 ضمیمه
آموزش طریقه restore کردن فایل backup توسط یک برنامه دلفی! تا اندازه اي تكميل شده!
سلام
سعي كردم برنامه قبلي را كاملتر كنم و بزارم
برنامه قبلي خيلي ساده بود. و بيشتر براي اين كاربرد داشت كه بار اول كه ميخواهيم برنامه را در يك كامپيوتر استفاده كنيم database مورد نظرمون را اول بسازيم و بعد پايگاه داده مون را روش restore كنيم.
ولي اين برنامه براي اينكه كه backup هاي را كه گرفتيم بتونيم انتخاب و restore كنيم.
وقتي كه به database وصليم نميشه عمل restore را انجام داد و با پيغام database in use مواجه ميشيم. براي همين من تو برنامه اصلي اين كار را نميكنم و يه برنامه جدا براش ميسازم. البته ميشه تو همون برنامه اصلي هم گذاشت و ارتباط بقيه adoconnection ها را به database مورد نظر قطع و دوباره وصل كرد. ولي خب ساخت يه برنامه جدا راحتتره. حالا شما مختاريد
************************************************** ************
یک adocommand روی فرم بگذارید! سپس روی سه نقطه خصوصیconncetion string کلیک کرده. build کلیک کرده. microsoft OLE DB Provider for SQL Server را انتخاب کرده و next بزنید و use windows Nt را انتخاب کنید و next بزنید! test conection و ok و ok
دقت كنيد نام database را انتخاب نكنيد
يك ShellListView1 روي فرم بگذاريد براي انتخاب فايل مورد نظر.
ShellComboBox1 براي دسترسي راحتتر به درايوها
و خاصيت ShellComboBox مربوط به كنترل ShellListView1 را برابر ShellComboBox1 قرار دهيد
و يك button براي انجام restore كد آن به شرح زير است:
procedure TFrmRestore.Button2Click(Sender: TObject);
var
s:string;
begin
if ShellListView1.selectedfolder.PathName ='' then
ShowMessage('Please Select the file')
else
begin
s:=ExtractFileExt(ShellListView1.selectedfolder.Pa thName);
if Length(s)>0 then
ShowMessage('Type of the file is not valid')
else
begin
try
begin
with ADOCommand2 do
begin
CommandText:='RESTORE DATABASE MyDataBase FROM DISK='+QuotedStr (ShellListView1.selectedfolder.PathName);
execute
end;
ShowMessage('DataBase has Successfully Restore');
end;
except
ShowMessage('Please Close any releated Programs and Select a True type file');
end;
end;
end;
end;
if ShellListView1.selectedfolder.PathName ='' then چك ميكنه فايلي انتخاب شده است يا نه!
s:=ExtractFileExt(ShellListView1.selectedfolder.Pa thName);
if Length(s)>0 then
ShowMessage('Type of the file is not valid')
چك ميكند فايل انتخابي از نوع ديگري مثلا عكس نباشد. ولي در اينجا يك مشكل دارد. اگر يك فولدر انتخاب شود تشخيص نمي دهد و باعث بروز خطا مي شود. از آنجا كه فايل بك آپ اس كيو ال داراي پسوند نيست. من نتونستم براي افتراق اون از يك فولدر راهي پيدا كنم
with ADOCommand2 do
begin
CommandText:='RESTORE DATABASE MyDataBase FROM DISK='+QuotedStr (ShellListView1.selectedfolder.PathName);
Execute
و كد بالا هم عمل resotore را انجام ميدهد.
************************************************** ******************
خب اين برنامه حتما هنوز ايرادات و نواقصي داره كه به بزرگي خودتون ببخشيد
متاسفانه من اكسس بلد نيستم و درباره ش نميتونم چيزي بگم. و در زمينه شبكه هم خيلي بي سوادم و بيشتر نياز به راهنمايي ديگران دارم.
موفق باشيد
التماس دعا
پ.ن. فايل نمونه ضميمه شده
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
برای تشخیص اینکه فولدر انتخاب شده یا نه if DirectoryExists(ShellListView1.Selectedfolder.Path Name) then
begin
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
ممنون از کدتون ولی وقتی aql در حالت start باشه پیغام database in use میده و وقتی که stop باشه پیغام [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied'. Process stopped. Use Step or Run to continue. میده ! مشکل رو اگه بگید ممنون میشم:چشمک:
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
نقل قول:
ممنون از کدتون ولی وقتی aql در حالت start باشه پیغام database in use میده و وقتی که stop باشه پیغام [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied'. Process stopped. Use Step or Run to continue. میده ! مشکل رو اگه بگید ممنون میشم
SQL Server باید Start باشه، ولی Database ایی که میخواید ازش Backup بگیرید، یا Restore کنید، نباید In use باشه؛ یعنی نباید کانکشنی اون دیتابیس رو باز کرده باشه.
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
لطف کنین یک SAMPLE کامل برای بکاپ و رستور گیری قرار دهید ممنون میشم
فایل restor87 مشکل داره
نقل قول: آموزش طریقه restore کردن فایل backup توسط یک برنامه دلفی! تا اندازه اي تكميل شده!
ولي اين برنامه براي اينكه كه backup هاي را كه گرفتيم بتونيم انتخاب و restore كنيم.
وقتي كه به database وصليم نميشه عمل restore را انجام داد و با پيغام database in use مواجه ميشيم. براي همين من تو برنامه اصلي اين كار را نميكنم و يه برنامه جدا براش ميسازم. البته ميشه تو همون برنامه اصلي هم گذاشت و ارتباط بقيه adoconnection ها را به database مورد نظر قطع و دوباره وصل كرد. ولي خب ساخت يه برنامه جدا راحتتره. حالا شما مختاريد
سلام من می خواستم توی برنامه خودم این کار رو انجام بدم هرکاری هم می کنم نمی تونم اتصال adoconnection رو قطع کنم اگه میشه لطفا کمک کنید ممنون می شم بگید کجا باید این کار رو انجام بدم و چه طور!!!:متعجب::خجالت:
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
نقل قول:
هرکاری هم می کنم نمی تونم اتصال adoconnection رو قطع کنم
AdoConnection.Close
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
چطور ميشه كه Database را Open كرد و از آن استفاده كرد و تاريخ Bachup آن در برنامه مشخص كنيم و چطور ميشود آن را بر روي يك درايو ديگه ذخيره كرد
با تشكر صميمانه از شما
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
براي RESTORE كرد ديتابيس SQL شما بايد ابتدا دسترسي به بانك را محدود به يك دسترسي نماييد. (كه آ ن هم دسترسي خود Restore است)
و سپس اقدام به RESOTRE نماييد.
براي دسترسي محدود :
ALTER DATABASE MyDatabase SET SINGLE_USER
و يا
EXEC sp_dboption 'MyDataBaseName','single user','TRUE'
و سپس از هر نوع RESTORE كه دوست داري استفاده كن.
همان RESTORE كه استفاده كرده اي خوب است از همان استفاده كن.
و يا از لينك زير استفاده كنيد.
https://barnamenevis.org/showth...=120434&page=3
**نكته: تنظيم ديتابيس به حالت تك كاربره پس از بازيابي اطلاعات به صورت اتوماتيك به حالت چند كاربره باز مي گردد.
موفق باشيد.
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
لطفا یک آموزش هم برای بک آپ گیری و رستور دیتابیس با savedialog بزارید.
نقل قول: آموزش طریقه ساخت datbase در sql و restore کردن فایل backup توسط یک برنامه دلفی!
با سلام من از اين كد استفاده كردم. پيغام پشتيبان گيري با موفقيت انجام شد رو ميده ولي هيچ كاري انجام نميده. يعني هيچ بك آپ اي نميگيره.
ADOCommand1.CommandText:='use TadbirAsak91 BACKUP DATABASE TadbirAsak91 TO DISK='+QuotedStr (ExtractFilePath(Application.ExeName)+'backup\MYBA CKUP.Bak');
ADOCommand1.execute;
ShowMessage('پشتيبان گيري با موفقيت انجام شد');