【问题标题】:How to accomplish query notification on SQL Server with python如何使用python在SQL Server上完成查询通知
【发布时间】:2013-05-22 13:45:24
【问题描述】:

我想在 SQL Server 上的表发生更改时在 Python 中设置回调,类似于此处为 Oracle 所做的。
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/oow10/python_db/python_db.htm#t11

是否有一个库可以让我在 Python 中这样做,如果有一个例子,将不胜感激。

【问题讨论】:

  • 您需要一个纯 CPython 解决方案,还是可以集成一个 .NET 组件,作为 Python 和 SQL Server 之间的接口,或者使用 IronPython? .NET 有 SqlDependency class 用于监视 SQL Server 中的数据更改,因此如果您可以以某种方式使用 .NET,那么您可以使用它,否则您可能不得不接受轮询。了解您正在使用的操作系统以及您如何连接到 SQL Server 会很有帮助。
  • 我在 Windows 上,使用纯 python。我想我可以尝试集成一个 .Net 组件。你知道一个例子吗?谢谢。
  • 文档中有 sample code 用于使用 SqlDependency 但我不知道有任何“标准”方法来实现 Python 到 .NET 桥。您可以编写一个 Python 可以通过 HTTP 或套接字使用的 .NET 服务,但这确实是您的应用程序如何设计的问题。
  • 参见此处:stackoverflow.com/questions/21117431/… 和此处(MySQL 但可能会提供一些线索); stackoverflow.com/questions/5771925/…
  • 刚刚了解了 github 上的 pythonnet,它对 .Net 非常有用,但您可能需要相反的方式。

标签: python sql-server


【解决方案1】:

首先,下载ODBC Driver for Linux 然后使用 pip 安装 pyodbc

pip install pyodbc==3.1.1

使用此代码创建一个 py 文件:

import pyodbc
server = 'yourserver.database.windows.net'
database = 'yourdatabase'
username = 'yourusername'
password = 'yourpassword'
driver= '{ODBC Driver 13 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';PORT=1433;SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("select @@VERSION")
row = cursor.fetchone()
if row:
    print row

这是您的基本连接和呼叫。然后按照您的 oracle 链接“使用连续查询通知”中的程序进行操作

但是...也许 b/c 我是一个 SQL 专家和安全专家,看来你最好让 SQL Server 将更改通知推送到 python 可以到达的地方。

【讨论】:

    猜你喜欢
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 2021-04-20
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多