关于数据库备份!
string ls_use
ls_use = 'EXEC'+'('+"'USE master'"+')'
EXECUTE IMMEDIATE :ls_use ;
ls_use = "EXEC sp_addumpdevice 'disk' , 'coolnan' , 'c:\aa.mdf'"
EXECUTE IMMEDIATE : ls_use ;
ls_use ='BACKUP DATABASE picture TO coolnan'
EXECUTE IMMEDIATE : ls_use ;
IF SQLCA.SQLCODE = -1 THEN
Messagebox("系统信息","数据库备份失败!~r~n~n请到检查路径正确与否。",Stopsign!)
this.enabled = TRUE
cb_restore.enabled = TRUE
sqlca.sqlcode = 0
sqlca.sqldbcode = 0
ls_use = "EXEC sp_dropdevice 'coolnan'"
EXECUTE IMMEDIATE : ls_use ;
RETURN
END IF
ls_use = "EXEC sp_dropdevice 'coolnan'"
EXECUTE IMMEDIATE : ls_use ;
为什么不好使呢?SQLCA.SQLCODE 每次都返回 -1
用SQL查询分析器可以直接执行
EXEC('USE master')
EXEC sp_addumpdevice 'disk' , 'coolnan' ,'c:\aa.mdf'
BACKUP DATABASE picture TO coolnan
EXEC sp_dropdevice 'coolnan'
执行结果:
(所影响的行数为 1 行)
'硬盘' 设备已添加。
已处理 96 页,这些页属于数据库 'picture' 的文件 'picture_Data'(位于文件 3 上)。
已处理 1 页,这些页属于数据库 'picture' 的文件 'picture_Log'(位于文件 3 上)。
BACKUP DATABASE 操作成功地处理了 97 页,花费了 0.239 秒(3.294 MB/秒)。
设备已除去。
[ 本帖最后由 tl-study 于 2006-10-21 15:24 编辑 ]