各位帮我看看这段简单的~小程序~~~~~~
下面是一段恢复数据库的程序,老是提示数据库正在使用中,可我已经将连接断开了~~~不懂程序哪里有问题,各位帮帮忙~~~~
procedure TE_databaseF.Button3Click(Sender: TObject);
var conn: tadoconnection;
ado: tadocommand;
a: integer;
begin
if Application.MessageBox('数据库恢复功能只能在服务器上执行,请先确认计算机是要恢复的服务器,并且现在没有任何程序正在使用数据库,是否现在进行恢复?', '提示', mb_yesno + mb_iconquestion) = idno then
abort
else
begin
if RzOpenDialog1.Execute then
begin
E_jdF := tE_jdf.create(self);
E_jdF.Label1.Caption := '正在还原数据,这可能需要几分钟时间!';
E_jdF.Caption := '数据库还原';
conn := tadoconnection.Create(nil);
conn.LoginPrompt := false;
conn.Connected := false;
conn.ConnectionString := 'Provider=SQLOLEDB.1;User ID=' + datamodule1.user + ';Password=;Data Source=' + Datamodule1.server + '';
datamodule1.ADOConnection1.Connected := false; //断开原有连接
conn.Connected := true;
ado := tadocommand.Create(nil);
ado.Connection := conn;
ado.CommandTimeout := 300;
Application.ProcessMessages;
ado.CommandText := 'Restore database Wlzls from disk=''' + RzOpenDialog1.FileName + '''';
try
ado.Execute;
except
Application.MessageBox('数据还原失败,请确认没有其它程序已经连接到数据库!', '提示', MB_OK + MB_ICONSTOP);
E_jdF.Close;
Exit;
end;
ado.Free;
Application.MessageBox('数据还原成功!', '提示', MB_OK);
end;
E_JdF.Close;
end;
end;