用户操作记录的问题?操作日志。

dwm250 2009-03-06 10:31:26
公司现有一套系统,三层架构(asp+vb+IIS),因无法追踪用户对数据的更改记录,所以老板要求在系统里增加用户操作记录功能,以便追究相关数据的责任人。由于前台是ASP做的UI,vb都已经打包成dll组件(无法更改和重新编译),所以我想只能从数据库里用触发器来实现了。
dll组件里都是利用updatebatch来更新主从表,而且是先更新从表再更新主表。
先有1主表和1从表,主表里有输入用户,批核用户等字段,而从表里没有这两个字段。所以在更新从表的时候,由于主表还没有更新,导致无法获取主表中的用户字段。这是问题所在。
还有没有其他的方法呢?谢谢。。。
...全文
337 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixiangqi 2010-03-30
  • 打赏
  • 举报
回复
我也想知道啊
juicey 2009-03-18
  • 打赏
  • 举报
回复
顶一下
Tiger_Zhao 2009-03-09
  • 打赏
  • 举报
回复
从表的触发器记录日志:Null,主表ID,从表ID,操作细节
主表的触发器更新日志为:操作员ID,主表ID,从表ID,操作细节

也就是一开始操作员字段为 Null,然后主表的触发器将 (操作员=Null AND 主表ID=当前ID) 的记录设置为真正的操作员ID
Simao 2009-03-06
  • 打赏
  • 举报
回复
mark
Tiger_Zhao 2009-03-06
  • 打赏
  • 举报
回复
那就在日志表中加标记,从表的触发器记录日志,主表的触发器负责更新日志中的用户名。
dwm250 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Tiger_Zhao 的回复:]
在从表中增加一个字段:[需要记录日志]
在从表的触发器中,更新 [需要记录日志]=1
在主表的触发器中,对相关的所有 [需要记录日志]=1 的从表记录,记录日志,更新 [需要记录日志]=0
[/Quote]
添加从表一个字段,这样冗余度会增大,现在系统就已经很慢了。。。
谢谢。。。
dwm250 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tongnaifu 的回复:]
SQL codeselectb.用户from从表 aleftouterjoin主表 bona.ID=b.IDwherea.ID=1
[/Quote]

因为从表更新的时候,主表还没有更新,而此时从表的已经触发了触发器,所以这个时候拿到主表的用户名仍然是修改前的用户名,而不是修改后的用户名.
Tiger_Zhao 2009-03-06
  • 打赏
  • 举报
回复
在从表中增加一个字段:[需要记录日志]
在从表的触发器中,更新 [需要记录日志]=1
在主表的触发器中,对相关的所有 [需要记录日志]=1 的从表记录,记录日志,更新 [需要记录日志]=0
tongnaifu 2009-03-06
  • 打赏
  • 举报
回复

select b.用户
from 从表 a left outer join 主表 b
on a.ID=b.ID
where a.ID=1
dwm250 2009-03-06
  • 打赏
  • 举报
回复
请教大家。。。。。
tongnaifu 2009-03-06
  • 打赏
  • 举报
回复
从表更新的时候根本不知道用户是谁,如果只更新了从表而不更新主表你就无从得知是谁更新了数据,现有的表结构下你使用触发器来获取用户名根本就是一个不可能完成的任务。
dwm250 2009-03-06
  • 打赏
  • 举报
回复
顶起。。。。
dwm250 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Tiger_Zhao 的回复:]
那就在日志表中加标记,从表的触发器记录日志,主表的触发器负责更新日志中的用户名。
[/Quote]
不好意思,我没有描述清楚。
系统里在审核数据的时候是先更新从表,后更新主表。但在新增记录时,却是先更新主表,再更新从表。。
谢谢。。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧