| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 847 人关注过本帖
标题:[求助]数据还原出错
只看楼主 加入收藏
youjianxia
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-25
收藏
 问题点数:0 回复次数:18 
[求助]数据还原出错
做毕业设计时,需做到数据备份和数据还原,数据备份做好了,但是数据还原出错了问题,现在急需大家的帮忙,下面是代码和出错信息:
'实现数据备份
Dim obackup As New SQLDMO.Backup
Dim osqlserver As New SQLDMO.SQLServerClass
Try
osqlserver.LoginSecure = False
osqlserver.Connect("(local)", "sa", "")
obackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database
obackup.Database = "you"
obackup.Files = "d:\you.bak"
obackup.BackupSetName = "you"
obackup.BackupSetDescription = "数据库备份"
obackup.Initialize = True
obackup.SQLBackup(osqlserver)
MsgBox("备份成功!!!")
Catch ex As Exception
MsgBox(ex.Message)
Finally
osqlserver.DisConnect()
End Try

数据还原:
Dim orestore As New SQLDMO.Restore
Dim osqlserver As New SQLDMO.SQLServerClass
Try
osqlserver.LoginSecure = False
osqlserver.Connect("(local)", "sa", "")
orestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database
orestore.Database = "you"
orestore.Files = "d:\you.bak"
orestore.FileNumber = 1
orestore.ReplaceDatabase = True
orestore.SQLRestore(osqlserver)
MsgBox("还原成功!!!")
Catch ex As Exception
MsgBox(ex.Message)
Finally
osqlserver.DisConnect()
End Try

出错信息:因为数据库正在使用,所以未所获得对数据库的排它访问权.


这个月就要验收,请大家帮忙一下,急,谢谢!!!
搜索更多相关主题的帖子: 数据 
2006-05-25 11:58
youjianxia
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-25
收藏
得分:0 

谁帮忙一下啊,有没有运行成功的代码,很急啊~~~~~


2006-05-25 12:06
youjianxia
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-25
收藏
得分:0 
怎么没人回啊

真得很急啊,这个月就要的.哭S.....

2006-05-25 13:08
chen5322
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-5-25
收藏
得分:0 

那是因为你没杀掉进程。要先建个杀进程的存储过程 在直接调用存储过程把当前的进程杀掉就OK了

2006-05-25 13:44
youjianxia
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-25
收藏
得分:0 
有没有详细的代码?
或者简单点的方法啊?

2006-05-25 13:48
youjianxia
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-25
收藏
得分:0 

帮忙啊~~~~~~~~


2006-05-25 16:22
chen5322
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-5-25
收藏
得分:0 
先在数据库里面创建这个存储过程 在调用这个存储过程
CREATE PROCEDURE killspid (@dbname varchar(60)) AS
declare @spid varchar(20)
declare #spid cursor for
select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
open #spid
fetch next from #spid into @spid
while @@fetch_status=0
begin
exec('kill '+@spid)
fetch next from #spid into @spid
end
close #spid
deallocate #spid
GO

调用存储过程:
1。定义连接 cn
2. 调用代码:

[IMG]C:\Documents and Settings\Administrator\桌面\新建 Microsoft Word 文档 (2)[/IMG]
2006-05-26 02:43
chen5322
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-5-25
收藏
得分:0 

cn.open()
cmdatabase.connection=cn
cmdatabase.commandtext="sp_helpdb"
cmdatabase.commandtype=commandtype.storedprocedure

kill.connection=cn
kill.commandtext="[killspid]"
kill.commandtype=commandtype.storedprocedure
kill.parameters.add("@return_value",sqldbyrpe.int,4)
kill.parameters("@return_value").direction=parameterdirection.returnvalue
kill.parameters.add("@dbname",sqldbtype.varchar,20)
cn.close()

后面再加上还原代码

2006-05-26 02:55
youjianxia
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-25
收藏
得分:0 

有一张图片看不到啊,有些是不是没定义啊,可不可以帮我写完整一点啊,我不会啊,谢谢啊~~~

[此贴子已经被作者于2006-5-26 12:30:54编辑过]


2006-05-26 12:29
youjianxia
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-25
收藏
得分:0 
我把你的代码改成这样子,不知道是不是我改的不对,还是怎么样,还是出错啊

Dim connStr As String
connStr = "initial catalog=you;data source=(local);integrated security=sspi;"
Dim cn As New SqlConnection(connStr)
cn.Open()
Dim cmdatabase As New SqlCommand
cmdatabase.connection = cn
cmdatabase.commandtext = "sp_helpdb"
cmdatabase.commandtype = CommandType.StoredProcedure
Dim Kill As New SqlCommand
Kill.connection = cn
Kill.commandtext = "[killspid]"
Kill.commandtype = CommandType.StoredProcedure
Kill.Parameters.Add("@return_value", SqlDbType.Int, 4)
Kill.parameters("@return_value").direction = ParameterDirection.ReturnValue
Kill.parameters.add("@dbname", SqlDbType.VarChar, 20)
cn.close()

2006-05-26 12:43
快速回复:[求助]数据还原出错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023619 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved