网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.ORACLE中的数据库、服务名、实例.
.如何让文件系统自动mount后,还能.
.Oracle 9i查询使用数据库的用户.
.Oracle回滚段概念用法规划及问题.
.单机创建物理Oracle9istandby数据.
.如何将Oracle的数据倒入EXCEL中的.
.批量绑定(bulk binds):FOR循环与.
.SQL Server与Oracle并行访问本质.
.ORACLE在HP-UX下的系列问题处理(.
.不让redo log日志组处于高激活状.
.Oracle数据库管理系统发布11i安全.
.使用跟踪数据来实现索引优化向导.
.用SYS执行全文索引的建立时出现权.
.如何在你的Linux机器上安装运行O.
.使用PL/SQL从数据库中读取BLOB对.
.在已有冗余的表上加唯一约束.
.数据库Identity+Primarykey字段强.
.在 Linux x86 上安装 Oracle 数据.
.实例讲解Oracle里抽取随机数的多.
.存储过程应注意的几个问题.

数据表历史数据的显示

发表日期:2008-2-9



  1 前言
  这是一个看似复杂,实现起来也复杂的课题。
  在给用户的系统中,用户往往需要查看数据的历史记录,体现历史记录的方式也是多种多样的,最常见的是将数据表每次改动保存起来,用户需要查看时,将该数据表直接显示给用户,这一方式而需要用户的较高的使用水平。
  本文将要实现的是,在用户的业务界面上,显示每一次的改变。
  若各位同仁实在是看不懂下面的描述文字,烦参见实例。
  注:非常感谢Javac兄就历史表查询结果的算法。
  
  ◇此为正常状态下的业务数据
  
 数据表历史数据的显示(图一)

  ◇此为查询历史数据状态下的业务数据列表中显示每一次修改的时间,用户点击后,数据切换到修改之前的状态。
  
数据表历史数据的显示(图二)

  2 技术要点
  2.0 需求实例
  出库单明细有5笔记录,用户修改出库单的明细中的2笔,保存于历史数据表仅保存修改的2笔记录,但是查看“出库单修改记录”时,需要显示所有5笔数据,包括没有修改的3笔数据和修改前的2笔数据。
  
  2.1 数据表的存储
  创建历史数据表,在历史数据表中设定“数据操作方式”字段和“数据操作时间”字段,保存用户对数据的操作方式,如“Insert”“Delete”“Update”
  对需要保存历史记录的数据表,创建触发器,将每一次的改动保存在历史数据表中,并赋值“数据操作方式”字段和“数据操作时间”字段
  
  2.2 历史数据表的解析
  2.2.1 对于每一次的数据变化,可根据“数据操作时间”字段进行查询
  2.2.2 对于每一次数据变化过程中,没有变化的数据,则根据“数据操作方式”进行查询。根据“数据操作时间”逆序,查找最近一次“Insert”或“Update”的数据;若碰到“Delete”该记录不再查询。
  此部份数据通常位于从表。<哎...连描述都是比较复杂的 designtimesp=13560>
  
  2.3 前台实现
  前台通过更新数据块的数据源,即可实现对历史数据的查询(最好更换CANVAS的颜色,如变为“红色”,以示区别)
  
  3 实例参考
  由于涉及程序对象过多,烦各同仁直接参考实例文件
  
  4 实例还需要进一步优化的要点
  4.1 若主表删除,则该笔记录将不出现在“操作历史列表”中,即用户看不到其主表删除的历史数据。
  
  4.2 目前以“操作历史列表”显示用户操作过程中的修改次数和修改时间,应追加一组按纽“首页”“上页”“下页”“尾页”,用户可以点击该按纽即可实现历史记录的查看。
  <该按纽已放于画布上,但代码还没有写 designtimesp=13575>
  
  4.3 目前被修改的历史数据没有设定不同的颜色以示区别
上一篇:nvarchar和varchar的转换问题 人气:788
下一篇:实现数据行的权限控制(Policy的应用) 人气:790
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐