2014-12-19 55 views
0

我需要在2003服务器上的FoxPro数据库中使用DB触发器来触发存储过程来调用我的设计的窗口服务,以便可以访问另一个SQL Server。你能想到如何将存储过程的调用扩展到Window服务吗?对Windows服务的Visual FoxPro DB存储过程调用

VFP触发调用存储过程UpdateTable

FUNCTION UpdateTable 
LPARAMETERS lcTableName, lnRecordID 

    callToWinService(lcTableName, lnRecordID) 

RETURN 
ENDFUNCTION 

显然,我不知道如何将数据传递到Windows服务。上次我是在几年前做的。任何帮助,将不胜感激

而且,是的,我可以在EXE文件中创建一个VFP代码的Windows服务。

+0

你真的是指Windows服务(在OS上运行的后台服务)还是Web服务? – Rikalous 2014-12-19 08:52:01

+0

我的意思是一个窗口服务,但使用参数调用EXE文件将会一样好! – DeKoss 2014-12-19 11:06:48

回答

3

假设你的意思是一个Windows服务,你不能用参数调用它,因为大概它已经在Windows启动时运行了。

Windows服务将不得不公开处理通信的某种方式。有实现这一目标的各种方法,有的取决于使用什么技术来创建服务:

  • 套接字
  • 命名管道
  • Windows通讯基础,如果它是一个.NET服务
  • 共享内存
  • RPC

如果你调用参数的EXE,然后将这些获得通过,以任何PRG被设置为主要公关您的VFP项目。

但是你为什么要采取这种方法?为什么不直接在触发器中使用SQLCONNECT(),SQLEXEC()等?

+0

谢谢你的回复。我不确定SQLCONNECT可以从存储过程中发出...所以,我会试试看...听起来很棒... – DeKoss 2014-12-19 23:42:10