如何在PB程序中恢复sql server2000的数据

y2001 2001-08-07 10:13:22
我写了一段程序,是在PB中恢复Sql server 2000 数据库,但是在PB中运行,总是显示"其他用户正在使用程序,恢复失败",意思是有人正在使用数据库,不能恢复,但其实只有我一人在用,在sql sever 管理器中可以恢复,在程序中却不可,为什么?
源程序如下:
String ls_database, ls_sql, ls_init, ls_fileno, ls_error,ls_use,ls_path

SetPointer(Hourglass!)

Commit using sqlca ;

DISCONNECT ;
sqlca.DBMS = ProfileString("config.ini","database","dbms","")
sqlca.database = ProfileString("config.ini","database","database","")
sqlca.userid = ProfileString("config.ini","database","userid","")
sqlca.dbpass = ProfileString("config.ini","database","dbpass","")
sqlca.logid = ProfileString("config.ini","database","logid","")
sqlca.logpass = ProfileString("config.ini","database","logpass","")
sqlca.servername = ProfileString("config.ini","database","servername","")
sqlca.dbparm = ProfileString("config.ini","database","dbparm","")
sqlca.lock = ProfileString("config.ini","database","lock","")
sqlca.autocommit = true
connect using sqlca;
if sqlca.sqlcode <> 0 then
SetPointer(Arrow!)
halt close
return
end if

ls_path=trim(sle_backupfile.text)

ls_use = "RESTORE DATABASE jsdata FROM DISK ='c:\data\jsdata'"
EXECUTE IMMEDIATE : ls_use ;


If sqlca.SQLCode = 0 Then
Halt Close
Else
Choose Case sqlca.SQLDBCode
Case 3101
ls_Error = "gfhggh"
Case Else
ls_Error = sqlca.sqlerrtext
End Choose
END IF
SetPointer(Arrow!)
...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbdesigner 2001-08-08
  • 打赏
  • 举报
回复
因为你没有让数据库进入单用户模式。你必须先连到master数据库,然后执行sp_dboption 'mrpii','single user',true再执行你的SQL语句(推荐)。或者执行DOS命令
run("net stop mssqlserver")成功后执行run("net start mssqlserver singleuser"),再执行你的SQL语句。
lzzyi 2001-08-07
  • 打赏
  • 举报
回复
把sqlserver置成单用户模式试试
pbworm 2001-08-07
  • 打赏
  • 举报
回复
在陶清的网站上有相关的文章,你可以看看。
www.pdriver.com
BlackBone 2001-08-07
  • 打赏
  • 举报
回复
你连到哪个数据库了,恢复数据时最好连到master数据库,而不是连到你所要恢复的数据库。

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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