为什么我的这段SQLServer数据库备份程序在WIN2000、WINXP下用不起
string str_servername,str_user,str_dbname,str_bkfilename,str_sql,str_tmp
//判断是否输入相关数据
str_servername=trim(sle_1.text)
if str_servername='' then
messagebox('提示','请输入服务器名称!')
sle_1.setfocus()
return
end if
str_user=trim(sle_2.text)
if str_user='' then
messagebox('提示','请输入登录用户名!')
sle_2.setfocus()
return
end if
str_dbname=trim(sle_4.text)
if str_dbname='' then
messagebox('提示','请输入数据库名称!')
sle_4.setfocus()
return
end if
str_bkfilename=trim(sle_5.text)
if str_bkfilename='' then
messagebox('提示','请输入备份路径及文件名!')
sle_5.setfocus()
return
end if
disconnect;
st_msg.text="~r~n正在尝试与服务器建立联系,请等待 ……"
st_msg.visible=true
//配置服务器参数
SQLCA.DBMS = "MSS Microsoft SQL Server"
SQLCA.Database = "master"
SQLCA.ServerName = str_servername
SQLCA.LogId = str_user
SQLCA.LogPass = trim(sle_3.text)
SQLCA.AutoCommit = true
SQLCA.DBParm = ""
//开始连接数据库
connect;
if sqlca.sqlcode<>0 then
str_tmp=sqlca.sqlerrtext
disconnect;
st_msg.visible=false
messagebox('提示','连接数据库失败,详细信息如下:~r~n~r~n'+str_tmp)
return
end if
st_msg.text="~r~n正在备份数据库,这大约需要几分钟时间!"
str_sql="BACKUP DATABASE "+str_dbname+" to disk='"+str_bkfilename+"'"
EXECUTE IMMEDIATE :str_sql;
if sqlca.sqlcode <> 0 then
str_tmp=sqlca.sqlerrtext
disconnect;
st_msg.visible=false
messagebox('提示','备份数据库时出错,详细信息如下:~r~n~r~n'+str_tmp)
return
else
disconnect;
st_msg.visible=false
messagebox("提示","数据库备份完毕!")
close(parent)
end if
运行这段代码后,有时会死机,有时会说SQLServer版本不适合
但在WIN98下就可以,请问各位高手这是怎么回事