简单搞定ASA备份/恢复程序

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

简单搞定ASA备份/恢复程序

  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;

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

图书馆管理软件alpha0417版本发布 安装说明:你只需要将library.exe和library.dll放置在同一目录下,lib.db为其使用的数据库。你的机器上需要安装ODBC程序,该程序使用的是PB提供的Adaptive Server Anywhere7.0数据库服务。你需要在操作系统中配置好文件。 具体功能:运行后有界面,除了“查询图书”没有做好外,其余的均已经做好。按“热门图书”可以按借阅总次数从高到低排列的书籍,“新书上市”则按入馆图书的时间降序排列。“用户注册”是让你进行注册而设计的,读者注册不需要验证,注册成功返回登陆页面;管理员注册需要图书馆验证,注册成功后返回首页。 目前图书馆系统,读者界面没有设计好,但是可以登陆。管理员也做好借阅图书、归还图书、预约图书、续借图书功能。图书馆系统核心就是这几个方面。其他东西可以很快地做好。预计两三天,就可以发布alpha的最终测试版本0420。届时希望多提意见。 调试数据: 管理员登陆密码admin,口令admin,密码取回问题library?,答案library。 图书借还统统可以在图书手续菜单下找到,图书管理菜单可以录入新书等等,目前只有出版社信息这一块有点问题。你还可以清理已经归还过的记录。我是这样想的,归还了的书籍可以由读者清理自己的和管理员集中清理。在读者管理菜单中可以清除预约历史记录。 我需要针求你的意见,和以后开发的一些见解。我知道现在不很完善。我只希望你能反映软件运行有什么毛病和你的想法。当然更欢迎对技术方面进行探讨。谢谢合作。 网上BBS: 知识经济 http://b175107.xici.net 负责交流和解决问题,当然倾向于考试方面的,鼓励原创作品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值