2

我想使用 SQL Server 表作为操作队列。因此,每当表非空时,我都希望向我的VDF应用程序发出某种通知,以避免不断地轮询数据库。VDF 依赖于使用stdcall,Win 32 API 或 COM/ActiveX 的标准调用约定。另一个对我有用的解决方案是在表非空时简单地运行一个 exe 文件。

SQL Server 中是否有可以在此处使用的事件?您将如何引导此类事件以供 VDF 使用(如上所述)?

4

2 回答 2

2

您可以使用 ON INSERT 触发器,可能将行发送到MSMQ,您的应用程序在新消息进入时侦听事件。

这是一个如何使用 SQL Server 为 MSMQ 提供数据的示例,这里是一个关于如何侦听事件的简短示例。

还有SQL Server Event Provider,它基本上只是为您进行轮询。

于 2008-12-22T12:16:46.480 回答
1

您将如何引导此类事件以供 VDF 使用。

您如何引导到 VDF 取决于您是否希望在 VDF 应用程序中发生可见的事情,或者您是否只想触发 VDF 中的过程。

如果是后者,我建议您使用 Webapp 来提供此功能。VDF(超过 10 的版本)内置了 Web 开发,并且很容易提供 SOAP 接口来做任何你想做的事情。

{ Published = True  }
{ Description = "Test the service is alive - returns 'Hello World'"  }
Function HelloWorld Returns String
    Function_Return "Hello World"
End_Function

如果是前者,那么不必担心每隔几秒左右使用计时器对象来轮询数据库。您会发现代码更像是“dataflex”,并且性能影响可以忽略不计。

但是有一个用于 MSMQ 的开源 VDF 库,可以在..
http://www.vdf-guidance.com/ContribPage.asp?Page=PKGGENMESSAGING&ContribRecId=106 找到

Finally - The Data Access newsgroups are the best place to go for Visual Dataflex support. Use http://sture.dk/wasp to search historical newgroups and go to news.dataaccess.com (using an NNTP client of your choice) to post and answer questions.

于 2008-12-23T12:40:14.263 回答