[英]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数据库)。
检查事项:
在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.