我想将SQL Server表用作动作队列。因此,无论何时表格非空,我都想向我的VDF应用程序发送某种通知,以避免不断轮询数据库。 VDF依赖于使用stdcall,Win 32 API的标准调用约定或COM/ActiveX。另一个可以为我工作的解决方案是在表格非空时简单地运行一个exe文件。当表非空时接收来自SQL Server的自动通知
在这里可以使用SQL Server中是否有任何事件?你将如何引导VDF使用这样一个事件(如上所述)?
我想将SQL Server表用作动作队列。因此,无论何时表格非空,我都想向我的VDF应用程序发送某种通知,以避免不断轮询数据库。 VDF依赖于使用stdcall,Win 32 API的标准调用约定或COM/ActiveX。另一个可以为我工作的解决方案是在表格非空时简单地运行一个exe文件。当表非空时接收来自SQL Server的自动通知
在这里可以使用SQL Server中是否有任何事件?你将如何引导VDF使用这样一个事件(如上所述)?
你可以使用一个ON INSERT触发器,可能是该行发送权MSMQ,您的应用程序侦听事件的新消息进来。
这里是一个example of how to feed MSMQ using SQL Server,这里a short one on how to listen for events。
还有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
如果是前者,那么不用担心使用定时器对象来每隔几秒钟轮询数据库。你会发现代码更“数据传输”,只有可忽略的性能影响。
然而,有一个开源的VDF库MSMQ,并且可以在这里找到..
http://www.vdf-guidance.com/ContribPage.asp?Page=PKGGENMESSAGING&ContribRecId=106
最后 - 数据访问新闻组是去视觉Dataflex支持的最佳场所。使用http://sture.dk/wasp搜索历史新组,然后转到news.dataaccess.com(使用您选择的NNTP客户端)发布并回答问题。
嗨,Seanyboy!很高兴从VDF'er老友那里获得输入:) – 2008-12-23 15:39:31
优秀的答案!我应该可以使用它。 – 2008-12-22 12:33:01