高手请进!帮我看看这段数据库备份的程序!!!
开发环境是PB8+SQLServer2000,
string ls_dbms,ls_database,ls_server,ls_username,ls_passwd,ls_dbparm;
int ls_fileExist=0
string sql,ls_use;
string path,file,pathfile;
int flag=0
// is_date=string(today())
file=trim(sle_name.text)+'.sql'
path=trim(sle_path.text)
pathfile=path+file
IF Trim(sle_name.Text)='' THEN
MessageBox('提示','请输入正确的文件名称')
RETURN 0
END IF
IF trim(sle_path.text)='' THEN
MessageBox('提示','请输入正确的路径')
RETURN 0
END IF
//从database.ini里读出数据库连接参数
ls_dbms =profilestring("database.INI","DATABASE","DBMS","")
ls_database =profilestring("database.INI","DATABASE","DataBase","") //当前连接的数据库
ls_username =profilestring("database.INI","DATABASE","LogID","")
ls_passwd =profilestring("database.INI","DATABASE","LogPass","")
ls_server =profilestring("database.INI","DATABASE","ServerName","")
//SQLCA.dbparm=profilestring("database.INI","DATABASE","DBParm","")
disconnect using sqlca; //断开当前的数据库hq1
connect using sqlca_master; //连接master数据库
if sqlca_master.sqlcode <> 0 then
messagebox('提示信息!','请检查database.INI文件,参数有误,系统无法连接到master数据库!')
return -1
end if
IF FileExists(pathfile) THEN //检查指定的文件是否存在
ls_fileExist=Messagebox('系统提示','系统发现文件"'+pathfile+'"已经存在.~r~n~n要替换它吗?',Question!,YesNo!)
IF ls_fileExist= 1 THEN //press yes button
FileDelete(pathfile) //删除指定的文件
else //如果press no button,则需要返回备份界面重新输入路径或文件名
disconnect using sqlca_master; //断开master数据库
connect using sqlca; //连接用户数据库hq1
return
END IF
END IF
//设置鼠标指针
SetPointer(HourGlass!)//---开始备份---
st_note.text ='正在备份数据库,请稍等...'
st_note.visible=true
This.Enabled =FALSE //当前对话框变成不能编辑模式
ls_use = 'EXEC' + '(' + "'" + ls_database + SQLCA.Database + "'" + ')' //crm为数据库名
EXECUTE IMMEDIATE :ls_use ;
// ls_use = 'EXEC' + '(' + " ' " + ls_database + sqlca_master.Database + "'" + ')' //SQLCA.Database此时为master
// EXECUTE IMMEDIATE :ls_use ;
SQLCA.AutoCommit = True //??????????????????????
sql="EXEC sp_addumpdevice 'disk','mydisk',' "+ pathfile+ " ' " //数据库备份设备的创建
EXECUTE IMMEDIATE : sql ;
if sqlca_master.sqlcode <> 0 then
messagebox("sp_addumpdevice",sqlca.sqlerrtext);
end if
sql='BACKUP DATABASE ' + ls_database + ' TO mydisk ' //开始 备份
EXECUTE IMMEDIATE : sql ;
IF sqlca_master.SQLCODE = -1 THEN
Messagebox("系统信息!","数据库备份失败!~r~n~n请检查路径正确与否!",Stopsign!)
this.enabled = TRUE
st_note.visible=false
sqlca.sqlcode = 0
sqlca.sqldbcode = 0
ls_use="EXEC sp_dropdevice @logicalname='mydisk' @delfile ='delfile' " //除去数据库设备或备份设备,从 master.dbo.sysdevices 删除该项
EXECUTE IMMEDIATE : ls_use ;
disconnect using sqlca_master; //断开master数据库
connect using sqlca; //连接hq1数据库
RETURN
END IF
ls_use = "EXEC sp_dropdevice @logicalname='mydisk' " //除去数据库设备或备份设备,从 master.dbo.sysdevices 删除该项
EXECUTE IMMEDIATE : ls_use ;
运行都没有什么错误,就是没有生成备份的文件!!!麻烦高手赐教!!!谢谢!!!