请问:恢复数据库不出错,但是检查数据根本没有恢复?为什么?(100分)

  • 主题发起人 主题发起人 booksfount
  • 开始时间 开始时间
B

booksfount

Unregistered / Unconfirmed
GUEST, unregistred user!
恢复的写法如下:
dmpact.ADOConnectionPact.Connected:=false;
adosql.Close;
AdoSql.SQL.Clear;
ADOSql.SQL.Text:='use master'
+' restore database '+sDBname
+' from disk='+ quotedStr(EditPath.Text);

try
ADOSql.ExecSQL;
except
dmpact.ADOConnectionPact.Connected:=true;
exit;
end;
dmpact.ADOConnectionPact.Connected:=true
LabelShow.Caption:='数据恢复完毕';


我调试了一下,发现没有执行except部分,显示了'数据恢复完毕',可是我看数据库中的数据还是以前的,并没有恢复,后来我把sql语句拿到sql server中,系统执行是正常的,数据恢复正确,请问:上面的语法哪里错了,好像sql并没有执行成功,可是为什么不except呢??
还有一个就是结束恢复后,我明明connected:=true了,为什么打开其他窗口出错,找不到表????谢谢指教!

 
帮帮忙!谢谢!
 
你需要用两个数据库连接组件,你想你上面的程序数据库连接都关闭了,你的QUERY组件能执行吗?
 
谢谢 jianhuren:我加了一个adoConnection,设置好了连接参数,在formshow时让
这个adoconnection为true了,close时为false了,然后让那个query连接到这个新的
adoconnect,上面的代码没有什么变动,可是还是没有恢复

我的连接字符串时这样写的(show事件):
ADOConnPact.Connected:=false;
strConnect:=
'Provider=SQLOLEDB.1;'
+ 'Password='+main.LogPass+';'
+'Persist Security Info=False; '
+'User ID='+main.LogId+';'
+'Initial Catalog=master;'
+'Data Source='+main.ServerName+';'
+'Use Procedure for Prepare=1;'
+'Auto Translate=True;'
+'Packet Size=4096;' ;
ADOConnPact.ConnectionString:=strConnect;
ADOConnPact.LoginPrompt:=false;



恢复代码没有变动,可是还是不恢复????谢谢帮助!
 
我如何知道这个sql 语句执行成功与否的返回数据呢??并没恢复,为什么系统不报错呢??
我如何得到象在sql server中执行的时候,下面的提示呢??

 
ADOSql.SQL.Text:='use master'
+' restore database '+sDBname
+' from disk='+ quotedStr(EditPath.Text);
仅仅执行了第一句,后面的根本没有执行,所以不报错,解决了,谢谢!!!结贴
 
接受答案了.
 
后退
顶部