数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
单搞定ASA备份/恢复程序

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

  Adaptive Server Anywhere(本文中简称ASA) 是PowerBuilder(本文中简称PB)自带的数据库管理系统,可作为小型应用系统的数据库服务器。而数据库的备份/恢复是一项基本的工作,要想用短短几分钟就完成这类程序的编写,能做到吗?本文就将为大家介绍一个用PB编写的ASA备份/恢复程序,只需很短的时间,就可以编制完成并运用在以ASA作为数据环境的小型应用上。

  一 备份程序
  先来看看备份程序部分的写法。在窗体上建一文本框 sle_1,用来显示备份的文件名,并添加两个按钮:cb_1(浏览)、cb_2(备份)。相应的事件代码如下:

  //cb_1.clicked()

  string fname,name

  GetfileSaveName('保存',fname,name,“db”,'数据库备份文件(*.1),*.1')

  sle_1.text=fname

  //cb_2.clicked()

  string mysql,bfname

  bfname=trim(sle_1.text)

  bfname=left(bfname,len(bfname)-2)

  mysql=“BACKUP DATABASE TO '”+bfname+“'”

  execute immediate :Mysql USING SQLCA;//运用SQL语句立刻执行备份

  if sqlca.sqlcode=0 then

  messagebox(“信息提示”,'备份成功!',information!,OK!)//给出备份成功与否的相关信息

  else

  messagebox(“信息提示”,'备份失败!',information!,OK!)

  end if

  二 恢复程序
  再来看看恢复数据库程序的编写。在窗体上建一文本框 sle_1,显示用来恢复的备份文件名,并添加两个按钮:cb_1(查找)、cb_2(恢复)。声明一个修改文件属性的API函数:

  FUNCTION ulong SetFileAttributes(ref string lpFileName,ulong dwFileAttributes) LIBRARY “kernel32.dll” ALIAS FOR “SetFileAttributesA”

  相应的事件代码如下:

  //cb_1.clicked()

  string fname,name

  GetfileOPenName('查找',fname,name,“1”,“数据库备份文件(*.1),*.1”)

  sle_1.text=fname

  //cb_2.clicked()

  string mysql,bfname,gzname

  ulong sxz=32,kb //sxz为文件的属性值,32表示可读写

  boolean tmp

  bfname=trim(sle_1.text)

  bfname=left(bfname,len(bfname)-2)

  // d:\slgz 为示例中数据库文件所在目录,tmp.db为临时的数据库文件

  mysql=“RESTORE DATABASE 'd:\slgz\tmp.db' FROM '”+bfname+“'”

  execute immediate :Mysql USING SQLCA;//同样是运用SQL语句来立刻执行恢复数据库的工作

  if sqlca.sqlcode<>0 then

  messagebox(“信息提示”,'数据恢复失败!',information!,OK!)

  return

  end if

  disconnect; //断开数据库连接

  gzname='d:\slgz\gz.db' //包含路径的数据库文件

  SetFileAttributes(gzname,sxz) // 去掉只读属性

  tmp=filedelete('d:\slgz\gz.db') //删除恢复前的数据库

  if tmp=false then

  messagebox(“信息提示”,'备份失败!',information!,OK!)

  return

  end if

  //将临时的数据库复制到当前的数据库文件上

  bfname=“d:\slgz\tmp.db”

  gzname=“d:\slgz\gz.db”

  kb=filecopy(bfname,gzname,true )

  if kb=1 then

  messagebox(“信息提示”,'数据库恢复成功!',information!,OK!)

  else

  messagebox(“信息提示”,'数据库复制失败!',information!,OK!)

  return

  end if

  filedelete('d:\slgz\tmp.db') //删除临时的数据库文件

  connect;

  三 小结
  程序备份和恢复的实现都只是调用了SQL内置的功能来实现,使程序显得相对简洁。功能虽然比较单一和简单,却也能满足数据库的备份和恢复的工作需求,在要求不高的应用场合可为数据库管理人员节约大量精力。上述程序在 PB 9.0中调试通过。
 




相关文章

相关软件