2012-10-21 120 views
-2

我有一个Windows应用程序窗体。该表被称为messages,并且无论何时用户插入更新或删除消息,日期/时间戳都存储在列UserAction中。在SQL Server中插入更新删除触发器

应该检索此列信息并将其作为链接显示在UI中。点击该链接有一个动作,链接应该被视为已读。

有人可以帮助我提供一些想法来实现这一行动吗?

在此先感谢。

回答

0

我不知道如何可以触发来自数据库的事件,并在UI中显示的细节,但我认为以下是可行的:

  1. 添加INSERT/DELETE触发你的表的代码UserAction插入数据表。
  2. 构建一个从UserAction读取数据并显示在UI中的UI。
  3. 您可能需要刷新您的UI以按一定的时间间隔刷新数据库UserAction中的数据。

这样,您的UI将以特定间隔轮询UserAction的任何更改并使用刷新的数据刷新页面。

0

您可以使用Query Notifications,但可以监控的内容有一些限制。

SQL Server 2005引入了查询通知,该新功能允许应用程序在查询结果发生更改时向SQL Server请求通知。查询通知允许程序员设计仅在应用程序以前检索到的信息发生变化时才查询数据库的应用程序。

该功能通过SqlDependency类公开。你应该检讨备注部分为评估是否查询通知的一部分,是你:

SqlDependency被设计在ASP.NET或中间层服务中使用不存在具有相对少量的服务器依赖于数据库的活动。它不适用于客户端应用程序,其中数百或数千台客户端计算机将为单个数据库服务器设置SqlDependency对象。如果你正在开发你需要可靠的分次通知时数据的变化,审查规划的高效查询通知策略和替代查询通知规划在SQL Server联机丛书通知主题的章节的应用程序。

0

你可以尝试这样的事:

CREATE TRIGGER dbo.trMessagesUpdateTimeStamp 
ON dbo.Messages 
FOR INSERT, UPDATE, DELETE 
AS 

    UDPATE dbo.Messages 
    SET UserAction = GETDATE() 
    FROM Inserted i 
    WHERE dbo.YourTableHere.ID = i.ID 

点退房:

  • INSERT情况下,可以很容易地更容易被DEFAULT约束的UserAction柱处理 - 这样,根据INSERT将定义的默认值(例如GETDATE())插入

  • 你需要能够加入保存由最后一条语句被修改的所有行的Inserted伪表(这样就可以行)与Messages表 - 我在这里假设你有某种ID列作为Messages上的主键 - 根据需要进行调整。

这个处理故事的数据库的一部分 - 我不是从你的问题很确定要在UI做什么...