繁体   English   中英

使用python 3和OSX或Linux连接到Wonderware Historian OLE DB

[英]connect to Wonderware Historian OLE DB using python 3 and OSX or Linux

谁能在OSX(或Linux)上使用python3与Wonderware Historian共享功能连接方法?

Historian显然是Microsoft SQL Server OLE DB(请参阅http://www.logic-control.com/datasheets/1/Historian/HistorianConcepts.pdf的 pg102)。

另一则SO帖子建议,唯一能够连接到OLE DB的python库是“ adodbapi”( 使用Python连接到Microsoft SQL服务器

尝试输入代码(使用默认的RO凭据):

import adodbapi
ServerName = "ServerName"
MSQLDatabase = "Runtime"
username = "aaUser"
password = "pwUser"
conn = adodbapi.connect("PROVIDER=INSQL;Data Source={0};Database={1};trusted_connection=yes;UID={2};PWD{3};".format(ServerName,MSQLDatabase,username,password))

这给出了一个错误:

adodbapi.apibase.OperationalError: (InterfaceError("Windows COM Error: Dispatch('ADODB.Connection') failed.",)...

该错误可能是由于pywin32软件包的缺失和不可用所致,该软件包显然仅适用于 Windows( 在Mac上为Pywin32(com对象)

提示赞赏。 我高度怀疑在这种情况下无法与Microsoft vs Mac / Linux进行沟通。

您应该能够使用Python访问MS SQL Server数据库(例如Wonderware Historian数据库)。

检查事项:

  • 对于ODBC,“受信任的连接”设置应为“否”。 受信任的连接意味着它尝试使用Windows身份验证登录。您要改用用户名和密码。 我认为您可以为OLE DB设置“集成安全性= SSPI”。
  • 连接字符串(用户名,服务器主机名/ IP,数据库名称,正确的端口,语法)
  • 端口(确保使用正确的端口-可能是非标准端口)
  • 防火墙-确保已将所有防火墙设置为允许访问
  • 如果您使用的是主机名,请确保DNS正常运行(例如,您可以ping服务器吗?)
  • 您可能需要为Linux和pyodbc安装ODBC驱动程序。 ODBC是更开放的标准。 正如您所指出的,OLEDB是基于COM的(例如,基于Windows的),因此我不确定它是否兼容。

在Linux和Windows上,我都可以通过sqlalchemy和pyodbc使用Python3访问Wonderware服务器-我没有Mac,因此您需要一个Mac。 我读过有其他可用的驱动程序,但是我对它们没有任何经验。 如果您有任何建议,在这里我会很高兴听到。

这就是我模块化pyodbc功能的方式。 本质上,我已经在代码中定义了一个函数来设置sql引擎连接:

def get_conn():
    conn_pyodbc = pyodbc.connect(DSN=<myDSN>, UID=<user>, PWD=<pass>)
    return conn_pyodbc

我这样使用连接:

def executeQuery(sql_query):
    with get_conn() as conn:
        df = pd.read_sql(sql_query, conn)

使用上下文管理器似乎是处理打开和关闭数据库连接的简便方法。

就设置DSN而言,我需要安装Microsoft ODBC驱动程序,通过单击我在网上找到的一些链接即可轻松完成。 成功安装后,我手动编辑了/etc/odbc.init和/etc/odbcinst.ini文件,使它们现在看起来像这样:

$ cat /etc/odbc.ini 
[myDSN]
Driver=ODBC Driver 13 for SQL Server
Description=Awesome server
Trace=No
Server=<serverIP>

$ cat odbcinst.ini 
[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.1
UsageCount=1

以我的经验,您可以使用“受信任的连接”,但这意味着您的计算机将尝试使用Windows凭据连接到服务器。 如果您登录到可以访问有问题的数据的Windows计算机,这些功能就可以使用。 在Linux上运行是另一回事,因此我坚持使用用户/密码组合。

别的问题随时问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM