PB中如何备份和恢复数据库? --sql server


PB中如何备份和恢复数据库?  
 
备份:  
string  ls_path  ,ls_use  
INT  li_net  
 
Ls_path  =  sle_backpath.text  
IF  ls_path  =  ""  THEN  
           Messagebox('系统提示',"请先指定要备份的数据文件的名称!    ")  
           RETURN  
END  IF  
IF  FileExists  (  ls_path  )  THEN    
           li_net=Messagebox('信息','提示:系统发现在"'+ls_path+'"目录下已经存在一个同名的文件.~r~n~n要替换它吗?',Question!,YesNo!)  
           IF  li_net=  1  THEN    
               FileDelete  (  ls_path  )  
           ELSE  
           END  IF  
END  IF  
SetPointer(HourGlass!)//---开始备份---  
This.Enabled  =  FALSE  
cb_restore.Enabled  =  FALSE  
 
ls_use  =  'EXEC'+'('+"'USE  '"  +  sqlca.database+')'  
EXECUTE  IMMEDIATE  :ls_use  ;  
 
SQLCA.AutoCommit  =  TRUE  
 
ls_use  =  "EXEC  sp_addumpdevice  'disk'  ,  'zyqdata'  ,  '"+ls_path+"'"  
EXECUTE  IMMEDIATE  :  ls_use  ;  
 
ls_use  ="BACKUP  DATABASE  "  +  sqlca.database  +  "  TO  zyqdata"  
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  'zyqdata'"  
     EXECUTE  IMMEDIATE  :  ls_use  ;  
           RETURN  
END  IF  
 
ls_use  =  "EXEC  sp_dropdevice  'zyqdata'"  
EXECUTE  IMMEDIATE  :  ls_use  ;  
 
SetPointer(Arrow!)  
IF  SQLCA.SQLCODE  >=  0  THEN  
           Messagebox("系统信息","备份完成!    ")  
 
           This.enabled  =  TRUE  
     cb_restore.enabled  =  TRUE  
           RETURN  
END  IF  
CONNECT  USING  SQLCA  ;  
SQLCA.AutoCommit  =  false  
 
恢复:  
string  ls_server,ls_database  
String  ls_path,ls_use  
 
ls_path  =  sle_repath.text  
IF  ls_path  =  ""  THEN  
           Messagebox('系统提示',"请先选择要恢复的数据文件!    ")  
           sle_repath.SetFocus()  
           RETURN  
END  IF  
ls_server=sqlca.servername  
ls_database=sqlca.database  
COMMIT  USING  SQLCA  ;  
SetPointer(HourGlass!)//---开始恢复  
//恢复的原因,连接到master数据库  
DISCONNECT  USING  SQLCA  ;  
Transaction  SQLCA_MASTER  
SQLCA_MASTER  =  CREATE  Transaction  
SQLCA_MASTER.DBMS  =  "MSS  Microsoft  SQL  Server  6.x"  
SQLCA_MASTER.DataBase  =  "master"  
SQLCA_MASTER.LogId  =  "sa"  
SQLCA_MASTER.servername  =ls_server  
SQLCA_MASTER.AutoCommit  =  TRUE  
SQLCA_MASTER.DBParm  =  ""  
CONNECT  USING  SQLCA_MASTER  ;  
 
This.Enabled  =  FALSE  
cb_backup.Enabled  =  FALSE  
 
ls_use  =  "EXEC  sp_addumpdevice    'disk'  "+"  ,  'zyqdataa'  "+","+"    '"+ls_path+"'    "  
EXECUTE  IMMEDIATE  :  ls_use  USING  SQLCA_MASTER;  
 
ls_use  =  "RESTORE  DATABASE  "  +  ls_database    +  "  FROM  DISK  =  "+"  '"+ls_path+"'  "      
EXECUTE  IMMEDIATE  :  ls_use  USING  SQLCA_MASTER;  
 
IF  SQLCA_MASTER.SQLCODE  =  -1  THEN  
           Messagebox("系统信息","警告:数据库恢复失败!~r~n~n请确认路径以及所选文件正确与否!~r~n~n或者有其他用户正在连接数据库!",Stopsign!)  
           This.Enabled  =  TRUE  
     cb_backup.Enabled  =  TRUE  
     SQLCA.SQLCODE  =  0  
           SQLCA.SQLDBCODE  =  0  
           ls_use  =  "EXEC  sp_dropdevice  'coolnan'"  
     EXECUTE  IMMEDIATE  :  ls_use  USING  SQLCA_MASTER;  
           RETURN  
END  IF  
 
ls_use  =  "EXEC  sp_dropdevice  'zyqdata'"  
EXECUTE  IMMEDIATE  :  ls_use  USING  SQLCA_MASTER;  
 
IF  SQLCA_MASTER.SQLCODE  =  0  THEN  
           Messagebox("系统信息","数据库恢复完成!")  
           This.Enabled  =  TRUE  
     cb_backup.Enabled  =  TRUE  
     RETURN                          
ELSE  
           Messagebox('系统信息','数据库备份操作未进行!',Stopsign!)  
           RETURN  
END  IF  
DISCONNECT  USING  SQLCA_MASTER  ;  
CONNECT  USING  SQLCA  ;  
SetPointer(HourGlass!)  
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PB SQL Server 数据库同步是一种将PowerBuilder应用程序的数据与SQL Server数据库的数据进行同步的技术。 在PowerBuilder,可以通过使用DataWindows和DataStores来访问和操作数据库。而PB SQL Server 数据库同步的目的是确保PowerBuilder应用程序的数据与SQL Server数据库相应的数据保持同步。 PB SQL Server 数据库同步的步骤一般包括以下几个方面: 1. 配置数据库连接:首先需要在PowerBuilder应用程序配置连接到SQL Server数据库的相关信息,如服务器地址、数据库名称、用户名和密码等。 2. 创建DataWindow对象:根据需要同步的数据表,在PowerBuilder创建相应的DataWindow对象,并设置查询语句和列与字段的对应关系。 3. 同步数据:通过调用DataWindow对象的Retrieve方法,可以从SQL Server数据库获取最新的数据。然后,可以在应用程序使用这些数据进行相应的操作,如显示、修改、删除等。 4. 更新数据:当在应用程序修改了数据后,可以通过调用DataWindow对象的Update方法将修改的数据保存回SQL Server数据库。 需要注意的是,为了确保同步的准确性,应该遵循一定的同步策略。例如,可以根据业务需求定期或实时地进行数据的同步,以保证数据的一致性。 总的来说,PB SQL Server 数据库同步是一种将PowerBuilder应用程序的数据与SQL Server数据库进行同步的技术,通过配置数据库连接、创建DataWindow对象、同步数据和更新数据等步骤,可以实现数据的同步和一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值