呜呜~我的数据库备份为什么不行?(简单,送分)

y_may 2003-05-14 11:10:55
在vb里:
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
Dim cmdBU As ADODB.Command
Set cmdBU = New ADODB.Command
Dim cmdCD As ADODB.Command
Set cmdCD = New ADODB.Command

cnn.ConnectionString = CnnStr
cnn.Open

Dim Param1 As ADODB.Parameter
Dim Param2 As ADODB.Parameter
Dim Param3 As ADODB.Parameter

Set cmdCD.ActiveConnection = cnn
cmdCD.CommandType = adCmdStoredProc

cmdCD.CommandText = "sp_addumpdevice"
Set Param1 = cmdCD.CreateParameter("p1", adVarChar, adParamInput, 20)
cmdCD.Parameters.Append Param1
Set Param2 = cmdCD.CreateParameter("p2", adVarChar, adParamInput, 20)
cmdCD.Parameters.Append Param2
Set Param3 = cmdCD.CreateParameter("p3", adVarWChar, adParamInput, 260)
cmdCD.Parameters.Append Param3

cmdCD("p1") = "disk"
cmdCD("p2") = "kqdb"
cmdCD("p3") = "e:\db\kqdb.dat"
cmdCD.Execute

Set cmdBU.ActiveConnection = cnn
cmdBU.CommandType = adCmdStoredProc
cmdBU.CommandText = "prokqbk"
cmdBU.Execute

cnn.Close


我的porkqbk存储过程是这样的:
ALTER PROCEDURE ProKqBK
AS
BACKUP DATABASE kq TO kqbk


运行时,提示说:无法打开备份设备“kqdb”,设备出现错误或脱机
怎么办~
...全文
16 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CrazyFor 2003-05-14
备份设备“kqdb”是否存在 ,如果没有添加这个设备.
------------------------
Transact-SQL 参考


sp_addumpdevice
将备份设备添加到 Microsoft® SQL Server™。

语法
sp_addumpdevice [ @devtype = ] 'device_type' ,
[ @logicalname = ] 'logical_name' ,
[ @physicalname = ] 'physical_name'
[ , { [ @cntrltype = ] controller_type
| [ @devstatus = ] 'device_status'
}
]

参数
[@devtype =] 'device_type',

备份设备的类型,device_type 的数据类型为 varchar(20),没有默认设置,可以是下列值之一。

值 描述
disk 硬盘文件作为备份设备。
pipe 命名管道。
tape 由 Microsoft Windows NT® 支持的任何磁带设备。如果 device 是 tape,则其默认值为 noskip。


[@logicalname =] 'logical_name'

备份设备的逻辑名称,该逻辑名称用于 BACKUP 和 RESTORE 语句中,logical_name 的数据类型为 sysname,没有默认值,并且不能为 NULL。

[@physicalname =] 'physical_name'

备份设备的物理名称。物理名称必须遵照操作系统文件名称的规则或者网络设备的通用命名规则,并且必须包括完整的路径。physical_name 的数据类型为 nvarchar(260),没有默认值,并且不能为 NULL。

当创建远程网络位置上的备份设备时,请确保在其下启动 SQL Server 的名称对远程的计算机有适当的写入能力。

如果要添加磁带设备,那么该参数必须是 Windows NT® 指派给本地磁带设备的物理名称,例如 \\.\TAPE0(对于计算机中的第一个磁带设备)。磁带设备必须连接到服务器计算机上,不能远程使用。如果名称包含非字母数字的字符,请用引号将其引起来。

[@cntrltype =] controller_type

当创建备份设备时,该参数并不是必需的。为脚本提供该参数比较合适,然而 SQL Server 会将其忽略。controller_type 的数据类型为 smallint,默认值为 NULL,可以是下列值之一。

值 描述
2 当 device_type 为 disk 时使用。
5 当 device_type 为 tape 时使用。
6 当 device_type 为 pipe 时使用。


[@devstatus =] 'device_status'

指明是读取 (noskip) ANSI 磁带标签,还是忽略 (skip) 它。device_status 的数据类型为 varchar(40),默认值为 noskip。



说明 可以指定 controller_type 或 device_status,但二者不要同时指定。


返回代码值
0(成功)或 1(失败)

结果集


注释
sp_addumpdevice 将备份设备添加到 master.dbo.sysdevices 表。可以在 BACKUP 和 RESTORE 语句中对其进行逻辑引用。

所有关系和权限问题可能干扰磁盘或文件备份设备的使用。请确保对在其下启动 SQL Server 的帐户给予适当的文件权限。

SQL Server 支持将磁带备份到 Windows NT 支持的磁带设备上。有关 Windows NT 支持的磁带设备的更多信息,请参见 Windows NT 的硬件兼容性列表。若要查看计算机上可用的磁带设备,请使用 SQL Server 企业管理器。

对于特定的磁带驱动器,只应使用推荐的磁带(按驱动器厂商的建议)。若要使用 DAT 驱动器,请使用计算机级的 DAT 磁带 (Digital Data Storage-DDS)。

不能在事务内执行 sp_addumpdevice。

权限
只有 sysadmin 和 diskadmin 固定服务器角色的成员才能执行该过程。

示例
A. 添加磁盘转储设备
下面的示例添加一个名为 MYDISKDUMP 的磁盘备份设备,其物理名称为 C:\Dump\Dump1.bak。

USE master
EXEC sp_addumpdevice 'disk', 'mydiskdump', 'c:\dump\dump1.bak'

B. 添加网络磁盘备份设备
下面的示例显示一个远程磁盘备份设备。在其下启动 SQL Server 的名称必须对该远程文件拥有权限。

USE master
EXEC sp_addumpdevice 'disk', 'networkdevice',
'\\servername\sharename\path\filename.ext'

C. 添加磁带备份设备
下面的示例添加 TAPEDUMP1 设备,其物理名称为 \\.\Tape0。

USE master
EXEC sp_addumpdevice 'tape', 'tapedump1',
'\\.\tape0'


请参见

BACKUP

RESTORE

sp_dropdevice

sp_helpdevice

系统存储过程

©1988-2000 Microsoft Corporation。保留所有权利。
回复
firetoucher 2003-05-14
?不是都说了么:无法打开备份设备“kqdb,check it
回复
yoki 2003-05-14
备份设备“kqdb”存在否??
回复
检查e:\db是否存在。
回复
nik_Amis 2003-05-14
./..
回复
pengdali 2003-05-14
--备份
backup database sys to disk='c:\目录\a.bak' with init

你的过程改为:

ALTER PROCEDURE ProKqBK
@文件 varchar(1000)
AS
BACKUP DATABASE kq TO disk=@文件 with init

你再用vb把路径和文件名传给它
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-14 11:10
社区公告
暂无公告