用程序恢复已备份的数据库出错。急急急!!!(50分)

  • 主题发起人 主题发起人 Mary
  • 开始时间 开始时间
M

Mary

Unregistered / Unconfirmed
GUEST, unregistred user!
我在恢复已备份的数据库时,用了query控件,用SQL语句:

restore database xsgl from mybackup

系统提示:
Database in use.The system administrator must have exclusive
use of the database to run the restore operation.

我只用了一个Query控件和Database控件。是不是因为Database连接已表示
一个连接,而query控件在execsql时又表示一个连接,所以系统认为sa不在
exclusive状态?怎样解决?

我的时间不多了,年底前一定要解决(我现在公司里加班)。请高手帮忙。

我用的是Sql server 7.0

 
不是吧?
query连server是通过database实现的。
是否你的query未指定该database而用了默认的database?
 
数据库需要以独占方式打开,SQL 7我不熟.6.5我可以.
如果在线,用MSCHAT到SEE.ONLINE.SH.CN来详谈,#DELPHI
 
eYes真快,刚才还没有的:)
 
数据库备份一般在后台执行!用client程序比较危险!
 
Another_eYes:
我用query控件是通过database控件连的。

CJ:昨天发了问题后连不上,你现在在网上吗?怎么用MSCHAT到SEE.ONLINE.SH.CN
对于MSCHAT是新手,(MSCHAT软件已经有了)。

delphi fan2:
能说说怎么在后台执行吗?
 
本来我是用database控件连接xsgl数据库,query控件的database name
指向database控件,现在将database连接至另一数据库,用query控件执行
restore database xsgl……程序通过了。

请问这样解决有什么缺点?是不是有更好的办法?
 
到底哪个是哪个?
如果必要需要改回来,也许还是我说的独占问题,
至于后台备份是很不错的,可以定时让数据库服务器自动备份:)
 
谢谢CJ,自动运行备份的任务需启动SQLServerAgent,我的SQL Server 7
启动不了,我也不知是哪里出错。

也许是我表达不清。
原来我的程序是:
database控件指向Sql Server的xsgl数据库,同时用连至该database的query
控件执行恢复的SQL语句。结果提示SA需独占数据库。

改后的程序:
database控件指向Sql Server的其它数据库(例PUB),同时用连至该database
的query控件执行恢复xsgl数据库的SQL语句。成功了。

我认为这不是最好的办法。
 
Hi mary 大哥
那就是这个了,数据库必须独占,如果你的DATABASE和数据库建立了连接,那么
数据库没有独占,恢复是不能实现的,必须独占,上面我的帖子有问题,这是备份常用
的方法:))SQL 7我不熟,起不来我也没办法.抱歉.
我说了,这样做没有大问题,只要之后恢复连接就可以了.
BTW:SQL 7好象要SP4+IE 4.02我的NT没有IE,装不了:((
 
CJ:
我暂时先这样用,没时间了(正月初五要用)。

你可以在win95或98上运行Sql server 7,速度还可以。7比6.5改进不少,
有时间可以看看(不要说我在为微软打广告,嘿嘿)。
 
只能用CLIENT(95/98)能用SERVER吗?不懂
 
CJ:能用。这样在单机版和网络版之间就不用改程序这么麻烦了。
 
MARY:我装不了
在线吗?到SEE来聊聊
 
CJ:你还在网上?
 
sql server 恢复数据库时必须是没有任何人连接到该数据库,所以您以
client端应用程序做恢复时不能连接到要恢复的数据库,方法如下:
1、关闭当前client端应用程序的Database1;
2、打开另一Database2,并且连到master库(或其他);
3、执行恢复动作(query连到Database2);
4、关闭Database2,打开Database1。

在此过程中要保证Client端应用程序只有Database1连接着,没有正在使用
的Dataset与Database1相连。

sql7 与sql6.5过程一样,只是语句不一样.

 
多人接受答案了。
 
后退
顶部