PDA

View Full Version : ریستور کردن بانک SQL در دلفی



shh17288
شنبه 27 آذر 1389, 13:12 عصر
چند هفته پیش سوالم را پرسیدم اما جوابی نگرفتم . برای ریستور کردن بانک SQl در زبان دلفی به مشکل برخوردم . کدهائی که از این سایت برداشتم هم کمکی نکرد یا سیستم هنگ میکنه یا پیغام میده بانک در حال استفاده است . پروژه ای هم که دارم خیلی فوریه . لطفا ً جوابم را بدهید .:ناراحت::افسرده::متفکر:

pezhvakco
شنبه 27 آذر 1389, 13:30 عصر
بهتره پرسشتون رو کامل این جا بنویسن : روش کارتون و کد دستورهایی برای این کار می نویسین ...
چند هفته پیش کجا و چی پرسیدین ؟

xboycooper
شنبه 27 آذر 1389, 18:54 عصر
یدونه ADOCommand و یک OpenDialog بذارید روی فرم و کد زیر رو توی یک دکمه بذارید .
mydb هم اسم دیتابیس شماست .


if (openDialog1.Execute) then
ADOCommand1.CommandText:='use master RESTORE DATABASE mydb FROM DISK='+QuotedStr (OpenDialog1.FileName);

shh17288
یک شنبه 28 آذر 1389, 10:15 صبح
با تشکر از راهنما ئیتون اما عملاً کار نمی کنه یعنی وقتی بک آپ تهیه شد با این کد ریستور بر نمی گرده وقتی توی SQl میریم داده ها رو بر نگردونده . اگه کد دیگری دارید ممنون میشم بهم بدین یا باز راهنمائیم کنید

shh17288
یک شنبه 28 آذر 1389, 10:24 صبح
این 1 کد که جدید گرفتم
if (openDialog1.Execute) then
ADOCommand1.CommandText:='use master RESTORE DATABASE elamie FROM DISK='+QuotedStr (OpenDialog1.FileName);

این 2
try
if openDialog1.Execute then
ADOConnection1.Execute('restore database elamie from disk='''+openDialog1.FileName+'''');
except
MessageDlg('ÔÊíÈÇä Êåíå ÔÏ',mtError,[mbOK],0); }
این 3
adoconnection1.KeepConnection:=false;
// adoconnection1.Close;
// adoconnection1.Free;
{ If OpenDialog1.Execute Then
begin
ADOCommand1.Connection:=ADOConnection1;
with ADOCommand1 do
begin
CommandText:='RESTORE DATABASE elamie FROM DISK='''+openDialog1.FileName+'''with replace';
execute
end;
ShowMessage('Restored');
این 4
adoconnection1.Close;
adoconnection1.KeepConnection:=false;
try
if openDialog1.Execute then
ADOConnection1.Execute('restore database elamie from disk='''+openDialog1.FileName+'''with replace');
except
MessageDlg('ÝÇíá ÈÇÒíÇÈí äÔÏ',mtError,[mbOK],0);
این 5
var
s:string;
begin
ADOConnection1.KeepConnection:=false;
s:=ExtractFilePath( Application.ExeName );;
s:=s+'elamie';
dm.ADOQuery1.sql.text:='restore database elamie from disk='+Quotedstr (s);
dm.adoquery1.execsql;
{ with ADOCommand1 do
begin
CommandText:='restore table elamie from disk='+QuotedStr (s);
execute
end; }
{ShowMessage('ÝÇíá ÈÇÒíÇÈí ÔÏ');
ADOConnection1.KeepConnection:=true;}
کد 1 رو که جدید گرفتم سیستم هنگ نمی کنه و پیغام هم نمی ده اما در sQL که بانک رو نگاه می کنی داده ها بر نگشته

اما کد های دیگه یا سیستم هنگ میکنه یا پیغام میده که بانک در حال استفاده است .