【问题标题】:How to catch trigger from VB Net如何从 VB Net 捕获触发器
【发布时间】:2015-05-15 23:18:12
【问题描述】:

可以从 vb.net 检测到表的触发器吗? 当您在管理系统中输入新订单时,我需要发送电子邮件,我在订单表中放置了一个触发器,但我需要知道日志条目何时从 vb 应用程序自动发送电子邮件。 我使用 MS SQL Express 2012 和 VB NET 2013。 感谢您的帮助。

【问题讨论】:

  • 我建议您让触发器在工作表中创建一个新条目。然后让您的 VB 应用程序扫描工作表以查找新的、未处理的条目,但您希望经常检查它。当它发现未处理的条目时,它会处理它,发送和发送电子邮件,完成后更新条目,这样它就不会重新处理相同的条目。使触发器快速运行,因为它所做的只是将一条记录插入到保存 vb 应用程序的电子邮件工作队列的工作表中。
  • 客户端程序不知道触发器的存在,这不是他们应该做的。有两种选择,从触发器本身发送邮件(可能,但根本不推荐)或在数据库操作成功后立即发送到客户端。
  • 嗨 StarPilot,我完全按照你的建议做了,但我怎么知道有一个新记录未完成?有一个计时器,一个无限循环?但是我可以在应用程序上做更多的事情,我无法控制。有什么建议么?谢谢
  • 嗨亚历杭德罗,我的问题是我不知道数据库操作何时完成。我做了一个触发器插入,在另一个表中插入一条新记录来记录操作,但是我如何启动应用程序来查看表中未工作的寄存器?会说,每分钟一次。必须使用计时器或适合做这项工作的东西,同时让我用应用程序做另一件事,比如更改参数,查询它的工作方式和其他内容,并且不要让应用程序冻结。

标签: sql-server vb.net tsql


【解决方案1】:

你不能通过触发器来做到这一点,有一个叫做通知服务的平台被设计用来和这个一起使用。

https://technet.microsoft.com/en-us/library/ms171247(v=sql.90).aspx

是的,链接显示 2005,但它仍然适用于 2012。

【讨论】:

  • 这看起来很有趣!你做过什么吗?
  • 我没有,因为我不再是程序员,而是更多的 DBA :) 我知道它确实有效,因为我见证了演示。
  • 这几天我似乎有点。希望有机会尝试一下。我一直想要这样的东西。感谢分享!
  • 嗨,Sean Gallardy,我正在寻找如何使用通知服务来做到这一点,但是,我是一个 vb 2013 初学者,这样对我来说有点难,所有代码都在 C# 中,我会尝试。
【解决方案2】:

触发器在它们各自的数据库内部用于内部工作(它就像一个存储过程-插入/更新/删除)。它们不是您可以在 VB 应用程序中听到的东西。

但是,您可以创建一个 WebService 用于访问数据库,当该例程在服务中运行时,您可以从该点发送一封代码电子邮件。

Documentation

【讨论】:

    猜你喜欢
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 2011-08-31
    相关资源
    最近更新 更多