代码之家  ›  专栏  ›  技术社区  ›  indyfromoz

C中的SQL消息侦听器#

  •  0
  • indyfromoz  · 技术社区  · 16 年前

    我有一个C Windows服务,它监听HTTP端口,并在接收到HTTP GET请求时触发一个操作。该操作通常是执行驻留在同一台计算机(运行Windows XP Professional或更高版本)中的应用程序。

    现在,我要求C Windows服务监听来自JDBC客户机的传入SQL查询,并再次触发应用程序的执行操作。我正在寻找一些帮助来实现一个简单的“监听器”,在返回对JDBC客户机的响应之后,从JDBC客户机接收SQL查询并触发操作。是否有我可以参考的资源/示例代码?我没有在目标计算机上安装任何数据库服务器(SQL Express、MySQL等)的选项。

    XML配置需要看起来像-

    <XmlConfiguration>
       <SQLListenerPort>18781</SQLListenerPort>
       <HttpRootUrl>http://127.0.0.1:8731/</HttpRootUrl>
       <HttpsRootUrl>https://127.0.0.1:8732/</HttpsRootUrl>
       <ServeHttpsRequests>true</ServeHttpsRequests>
       <Triggers>
          <!-- Sample triggers for testing, please update for production deployment -->
          <Trigger>
             <URL>http://127.0.0.1:8731/CustomerID</URL>
             <Action>MyExecutable.exe CustomerID</Action>
          </Trigger>
          <Trigger>
             <SQL>SELECT * FROM A/SQL>
             <Action>MyExecutable.exe A</Action>
          </Trigger>
          <Trigger>
             <SQL>SELECT * FROM B</SQL>
             <Action>MyExecutable.exe B</Action>
          </Trigger>
          <Trigger>
             <URL>https://127.0.0.1:8732/CASE1/CustomerID/MachineID</URL>
             <Action>TEST.exe CustomerID MachineID</Action>
          </Trigger>
       </Triggers>
    </XmlConfiguration>
    

    行为-

    C Windows服务接收SQL查询“select*from a”,查找触发器映射并用参数(即“a”)激发可执行文件。

    谢谢你抽出时间。

    因德罗莫茨

    2 回复  |  直到 16 年前
        1
  •  0
  •   Remus Rusanu    16 年前

    JDBC是一个API,它将各种数据库API统一在一个通用管理器下,并与一个API进行接口。没有JDBC协议,JDBC加载的每个特定驱动程序都将使用自己的本地协议与数据库进行交互。因此,您不能在服务中监听“jdbc”调用,因为没有“jdbc调用”这样的东西。如果要接收SQL请求并返回结果集,则必须实现JDBC驱动程序的协议之一,如 TDS 例如,对于SQL Server驱动程序。要实现一个TDS“服务”,意味着您必须编写一个TDS网关,这是一个完全无用的练习,因为您可以通过简单地公开服务器本身的TDS侦听端口(忽略安全细节…)来实现这一点。

    您可以看到的是接收普通的HTTP Web服务调用(SOAP或REST),并将它们作为普通的Web服务请求进行处理,将结果作为SOAP响应或RESTful HTTP响应返回。或者你可以直接暴露 OData 服务,可以创建 straight from an EF project . 但是客户机必须像任何WWW服务一样与此服务交互,客户机端不涉及JDBC或其他数据库技术堆栈。

        2
  •  0
  •   Jeff Maass PrateekSaluja    16 年前

    您要查找的是MS SQL Service Broker。 Here 是它的主页。

    以下是一些启动程序/示例: