SQL Server数据恢复的问题???用了两个库连接,还是提示库在使用 (50分)

  • 主题发起人 主题发起人 yczjs
  • 开始时间 开始时间
我也不知道为什么,我曾经也出现过,不过时有时无。
 
当你关闭所有文件时就是双的,但是不一样,有VCL的,还有CLX的两种
其实并不完全是双的,有些控件CLX是没有的
在面板上点右键,选择属性,就看到其中差别了
 
在注册表里当有重复时,对其中一个标明 hide 。你的情况是 Delphi 出现不稳定了。
大都发生在内存或资源短缺或文件没有正常关闭情况下。(附注册表示例)
[HKEY_CURRENT_USER/Software/Borland/Delphi/7.0/Palette Defaults]
"DataSnap"="TRemoteServer;TMidasConnection;TOLEnterpriseConnection;TProvider"
"DataSnap.Hidden"="TRemoteServer;TMidasConnection;TOLEnterpriseConnection;TProvider"

"InternetExpress"="MidProd.TMidasPageProducer"
"InternetExpress.Hidden"="MidProd.TMidasPageProducer"
 
不是楼上说的两个页面啊
有谁知道???
 
重新装一次
 
不用紧张,没事的.不用重装.
重新new一个project就恢复正常了.小bug而已.
 
我还没有遇见过
学习
 
首先断开所有连接,再用sp_who查看一下,如果还有sleeping的连接,直接kill掉
我都是这样作的
 
我在用代码来实现备份与恢复的
连接是用混合模式登陆
代码中如何Kill这个用户呢?
 
在数据恢复时,如果新建一个数据库。
再再该窗体进行ACOConnection的断开是无效的(释放的不彻底)。
但是,如果你退出该窗体。
再进入,进行数据备份是可以的。
 
我好象可以
 
S:='RESTORE DATABASE ['+DBName+
'] FROM DISK = N'''+filename+''' WITH FILE = 1, NOUNLOAD , STATS = 10, RECOVERY , REPLACE ';
for I:=0 to Application.ComponentCount-1 do
Begin
if Components is TAdoDataSet then
TAdoDataSet(Components).Close;
if Components is TADOQuery then
TADOQuery(Components).Close;
if Components is TADOTable then
TADOTable(Components).Close;
end;
ADOConnection1.Close;
ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='
+G_DBServerPsw+';Persist Security Info=True;User ID='
+G_DBServerUser+';Initial Catalog=master;Data Source='
+G_ComputerName;
ADOConnection1.Connected:=True;
ADOQuery1.Close;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('sp_who');
ADOQuery1.Open ;
ADOQuery1.Filter :='dbname='''+AccountVar.DataBaseName+''' ';
ADOQuery1.Filtered :=true;
ADOQuery1.First ;
while not ADOQuery1.Eof do
begin
ADOCommand1.CommandText:='kill '+ADOQuery1.FieldByName('spid').AsString;
try //使用错误处理是因为在kill时链接可能已经断开了
ADOCommand1.Execute ; //kill 其它连接
except
end;
ADOQuery1.Next ;
end;
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add(S);//restore语句
try
Screen.Cursor:=crSQLWait;
ADOQuery1.ExecSQL ;
MessageBox(Handle,'恢复成功!','信息',MB_OK+MB_ICONINFORMATION);
finally
Screen.Cursor:=crDefault;
G_CloseDirect:=True;
end;
 
感谢Ziyu的答复
还有两处不清楚:
ADOQuery1.Filter :='dbname='''+AccountVar.DataBaseName+''' ';
//AccountVar.DataBaseName如何定义
G_CloseDirect:=True;//有何用
解决此问题另有100分相送
 
he he
copy得快了,没注意! 那是我在程序里定义的两个变量而已
AccountVar.DBName就是上文提到的DBName(要恢复的DB名称)
G_CloseDirect你不用管她,另一个变量而已
 
Ziyu 另有分相送
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1673456
 
后退
顶部