恢复数据库报错,什么问题?

xue_tom 2006-09-08 09:11:41
恢复数据库报错,什么问题?
代码如下:
Transaction SQLCA_MASTER
SQLCA_MASTER = CREATE Transaction
SQLCA_MASTER.DBMS = "MSS Microsoft SQL Server"
SQLCA_MASTER.Database = "master"
SQLCA_MASTER.ServerName = profilestring('mis.ini','Database','servername','XXX')
SQLCA_MASTER.LogId = "sa"
SQLCA_MASTER.AutoCommit = true
SQLCA_MASTER.DBParm = ""
connect using SQLCA_MASTER;
If SQLCA_MASTER.sqlcode 0 Then
MessageBox('»Ö¸´Ê§°Ü',SQLCA_MASTER.SQLErrText)
disconnect;
Return
End If

ls_sql = " EXEC sp_dropdevice posdb_bak "

Execute Immediate :ls_sql using SQLCA_MASTER;
If SQLCA_MASTER.SQLCode <> 0 Then
MessageBox('»Ö¸´Ê§°Ü',SQLCA_MASTER.SQLErrText)
disconnect;
Return
End If
ldt_end = now()

MessageBox('Ìáʾ','»Ö¸´³É¹¦!')
disconnect using SQLCA_MASTER;

老是提示“因为数据库正在使用,所以未能获得对数据库的排它访问权”

但是实事上对posdb这个数据库没有连接了,不知道什么问题,高手赐教!
...全文
319 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuguang007 2006-09-09
  • 打赏
  • 举报
回复
把数据库的模式设置成独占模式
恢复完后在取消独占模式
  • 打赏
  • 举报
回复
如果还是提示“因为数据库正在使用,所以未能获得对数据库的排它访问权”,在还原前可以做个循环把所有的连接者都KILL掉
  • 打赏
  • 举报
回复
sqlca.autocommit=true;
Execute Immediate :ls_sql using SQLCA_MASTER;
sqlca.autocommit=false;
  • 打赏
  • 举报
回复
是不是这个数据库被其它程序占用着,比如PB、查询分析器之类的
xue_tom 2006-09-09
  • 打赏
  • 举报
回复
奇怪,我刚刚试了一下,又成功了!搞不懂!
xue_tom 2006-09-09
  • 打赏
  • 举报
回复
实事上我没有用sqlca连接任何数据库,所以也没有必要disconnect,
我只连接了master,这样也不行吗?
青锋-SS 2006-09-09
  • 打赏
  • 举报
回复
没看到你断开数据库连接的代码啊.另外disconnect应该加using sqlca_master吧.

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧