我想使用 SQL Server 表作为操作队列。因此,每当表非空时,我都希望向我的VDF应用程序发出某种通知,以避免不断地轮询数据库。VDF 依赖于使用stdcall,Win 32 API 或 COM/ActiveX 的标准调用约定。另一个对我有用的解决方案是在表非空时简单地运行一个 exe 文件。
SQL Server 中是否有可以在此处使用的事件?您将如何引导此类事件以供 VDF 使用(如上所述)?
我想使用 SQL Server 表作为操作队列。因此,每当表非空时,我都希望向我的VDF应用程序发出某种通知,以避免不断地轮询数据库。VDF 依赖于使用stdcall,Win 32 API 或 COM/ActiveX 的标准调用约定。另一个对我有用的解决方案是在表非空时简单地运行一个 exe 文件。
SQL Server 中是否有可以在此处使用的事件?您将如何引导此类事件以供 VDF 使用(如上所述)?
您可以使用 ON INSERT 触发器,可能将行发送到MSMQ,您的应用程序在新消息进入时侦听事件。
这是一个如何使用 SQL Server 为 MSMQ 提供数据的示例,这里是一个关于如何侦听事件的简短示例。
还有SQL Server Event Provider,它基本上只是为您进行轮询。
您将如何引导此类事件以供 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.