سيد مجتبي هاشمي
جمعه 01 آذر 1387, 17:57 عصر
من برای Restore کردن یک پشتیبان گرفته شده از بانک SQL Server2000 از کد زیر استفاده کرده ام. اما مشکلاتی دارد. لطفا مرا راهنمایی کنید.
procedure TRestre.Button1Click(Sender: TObject);
var
s:string;
begin
if ShellListView1.ItemFocused.Selected = false then
begin
MessageDlg('Please select the file',mtInformation,[mbOK],0);
ShellListView1.SetFocus;
end
else
begin
s:=ExtractFileExt(ShellListView1.selectedfolder.Pa thName);
if DirectoryExists(ShellListView1.Selectedfolder.Path Name) then
begin
MessageDlg('you are select the folder. Please select the file',mtWarning,[mbOK],0);
end
else
if Length(s)>0 then
MessageDlg('typr file is invaled',mtWarning,[mbOK],0)
else
begin
dm.ADOConnection1.Close;
try
with ADOCommand1 do
begin
CommandText:='ALTER DATABASE photographer SET SINGLE_USER WITH ROLLBACK IMMEDIATE';
execute;
CommandText:='use master RESTORE DATABASE photographer FROM DISK='+QuotedStr(ShellListView1.selectedfolder.Pat hName);
execute;
end;
MessageDlg('Restore Succeefull',mtInformation,[mbOK],0);
ShellComboBox1.ItemIndex := 0;
except
MessageDlg('try again',mtError,[mbOK],0);
ShellComboBox1.SetFocus;
end;
end;
dm.ADOConnection1.Open;
end;
end;
مشکل اول:
if ShellListView1.ItemFocused.Selected = false then
begin
MessageDlg('Please select the file',mtInformation,[mbOK],0);
ShellListView1.SetFocus;
این کد اجرا نمیشود؟ راهنمایی کنید:
مشکل دوم:
dm.ADOConnection1.Open که بعد از Restore کردن نوشته شده و برای اتصال مجدد به پایگاه داده است اجرا نمیشود.
مشکل سوم:
در صورتی که dm.ADOConnection1.close و dm.ADOConnection1.Open را ننویسم پیام خطای زیر را میدهد.
http://barnamenevis.org/forum/M:\untitled.bmp
از دوستان خواهش میکنم راهنمایی کنید. ممنون میشم ازتون.
در ضمن همین کد را زمانی که در برنامه ای که به DataBase وصل نیست اجرا کنم یا اینکه آن را قبل از ورود به نرم افزار اجرا کنم درست اجرا میشه.
procedure TRestre.Button1Click(Sender: TObject);
var
s:string;
begin
if ShellListView1.ItemFocused.Selected = false then
begin
MessageDlg('Please select the file',mtInformation,[mbOK],0);
ShellListView1.SetFocus;
end
else
begin
s:=ExtractFileExt(ShellListView1.selectedfolder.Pa thName);
if DirectoryExists(ShellListView1.Selectedfolder.Path Name) then
begin
MessageDlg('you are select the folder. Please select the file',mtWarning,[mbOK],0);
end
else
if Length(s)>0 then
MessageDlg('typr file is invaled',mtWarning,[mbOK],0)
else
begin
dm.ADOConnection1.Close;
try
with ADOCommand1 do
begin
CommandText:='ALTER DATABASE photographer SET SINGLE_USER WITH ROLLBACK IMMEDIATE';
execute;
CommandText:='use master RESTORE DATABASE photographer FROM DISK='+QuotedStr(ShellListView1.selectedfolder.Pat hName);
execute;
end;
MessageDlg('Restore Succeefull',mtInformation,[mbOK],0);
ShellComboBox1.ItemIndex := 0;
except
MessageDlg('try again',mtError,[mbOK],0);
ShellComboBox1.SetFocus;
end;
end;
dm.ADOConnection1.Open;
end;
end;
مشکل اول:
if ShellListView1.ItemFocused.Selected = false then
begin
MessageDlg('Please select the file',mtInformation,[mbOK],0);
ShellListView1.SetFocus;
این کد اجرا نمیشود؟ راهنمایی کنید:
مشکل دوم:
dm.ADOConnection1.Open که بعد از Restore کردن نوشته شده و برای اتصال مجدد به پایگاه داده است اجرا نمیشود.
مشکل سوم:
در صورتی که dm.ADOConnection1.close و dm.ADOConnection1.Open را ننویسم پیام خطای زیر را میدهد.
http://barnamenevis.org/forum/M:\untitled.bmp
از دوستان خواهش میکنم راهنمایی کنید. ممنون میشم ازتون.
در ضمن همین کد را زمانی که در برنامه ای که به DataBase وصل نیست اجرا کنم یا اینکه آن را قبل از ورود به نرم افزار اجرا کنم درست اجرا میشه.