原贴:http://topic.csdn.net/u/20081222/09/2167f45a-da89-447e-abe4-6d397a27a34c.html?596040093里面大家说了存储过程的好处但是在ASP.NET的 面向对像
然后我经过慕白兄修改做了一个ORM工具
这个工具里面有一个功能
就是表记录的修改日志功能,具体到每一条记录的任何一个操作,和记录操作人的相关系统
(实现是,当新建,修改,删除时,都把他原来的数据和现有的数据对比,再加上当前操作用户的修改保存到另一个数据库的UpdatDataLog表中)
因为我的系统是票务系统,所以记录这些东西是很重要的但是用存储过程的话要实现我这个功能很是麻烦但用这个又不能用存储过程(比如说批量修改,在这里都得用循环一条一条的更新)那这些怎么取舍呢谢谢

解决方案 »

  1.   

    实现是,当新建,修改,删除时,都把他原来的数据和现有的数据对比,再加上当前操作用户的修改保存到另一个数据库的UpdatDataLog表中
    ---------
    的确触发器最适合...不要为了OO而OO,同样不要为了使用SP而使用SP...设计中很多时候都是矛盾的,只能根据需求去做权衡...
      

  2.   

    开始的时候想过用触发器
    但触发器捕捉不到当前用户的操作

    记录1的价格从100改为200元的时候
    触发器只能取到Price 100=>200
    但是在.NET中的话我就可以取
    Price 100=> 200 
    用户ID: 1 
    面页: PriceEdit.aspx 
    时间: XXX
    IP:   XXX
      

  3.   

    如果你要传递这些信息...用SP或ORM都可以...ORM怎么就不能批量更新了?
      

  4.   

    RE:
    如果你要传递这些信息...用SP或ORM都可以...ORM怎么就不能批量更新了?
    ------------------------------------
    比如
    Update MyTab Set Price = 200 where ID < 100
    如果这样的话我如何来保存我的更改记录因为我原先的保存为
    ID  表名 记录ID  原记录信息 新记录信息 更改信息  操作ID  操作时间 操作IP  操作页面如果批量的话 我就面的方法没有办法谢谢
      

  5.   

    用存储过程有好处,但在ASP.NET里,这好处已经不是很显著了。在你的问题里,我觉得没必要用