Foxtable(狐表)用户栏目专家坐堂 → 数据更新日志


  共有1550人关注过本帖树形打印复制链接

主题:数据更新日志

帅哥哟,离线,有人找我吗?
newsun2k
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1436 积分:10602 威望:0 精华:0 注册:2014/8/13 16:19:00
数据更新日志  发帖心情 Post By:2018/1/19 8:45:00 [只看该作者]

我想做一个数据更新的日志,记录数据更新前后的情况,及更新人。
原来是用触发器做的。有个缺陷是,不知道数据是哪个用户更新的。
如果在系统里面,每次更新就保存数据更新记录,比较麻烦,涉及表的更新类型太多了:
用户直接更新当前表、更新其他表时更新当前表(有的是通过datatables().save,有的是通过dr.save保存的,或者sqlreplacefor保存)
修改起来涉及面比较广
不知道老师有没有好的方法教我,谢谢。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/19 9:12:00 [只看该作者]

1、参考

 

下载信息  [文件大小:312.0 KB  下载次数:22]
图片点击可在新窗口打开查看点击浏览该文件:操作日志2017.table

 

2、如果用触发器,可以查询客户端信息

 

http://blog.csdn.net/xiaojia_boke/article/details/40310629

 


 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1436 积分:10602 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2018/1/19 10:36:00 [只看该作者]

1、提供的例子中,确实通过replacefor也可以更新数据。
但是有一个比较重要的缺陷,如果改动比较多,尤其是新增一行数据的时候。
会在日志中创建很多行数据,(一个字段对应一行数据),甚至不最后保存,只是中间改动了一下,也会创建一行数据。
这肯定不行啊。
那日志表不得非常巨大?

2、访问sql server都是一个用户,sa.

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/19 10:42:00 [只看该作者]

1、你可以对新增的行不进行处理;

 

     你可以不在datacolchanged事件处理,你可以在beforesavedatarow事件处理,循环每一行对比,把不同的记录。

 

2、你可以弄多个用户;

 

    你也可以在触发器记录修改的内容,在foxtable里面记录修改的人员以及时间,两者结合大致确定谁修改了数据。


 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1436 积分:10602 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2018/1/19 10:55:00 [只看该作者]

1、使用beforeavedatarow,那replacefor更新的时候,不起作用了。图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/19 10:59:00 [只看该作者]

以下是引用newsun2k在2018/1/19 10:55:00的发言:
1、使用beforeavedatarow,那replacefor更新的时候,不起作用了。图片点击可在新窗口打开查看

 

起作用的。只要是前台那里修改的内容,最后保存都会触发beforeSaveDataRow事件


 回到顶部