使用python 3和OSX或Linux连接到Wonderware Historian OLE DB
谁能在OSX或linux上使用python3与Wonderware的Historian共享功能连接方法 Historian显然是Microsoft SQL Server OLE DB(参见第102页) 另一篇SO帖子建议,唯一能够连接到OLEDB的python库是“adodbapi” 尝试使用默认RO凭据输入代码:使用python 3和OSX或Linux连接到Wonderware Historian OLE DB,python,wonderware,Python,Wonderware,谁能在OSX或linux上使用python3与Wonderware的Historian共享功能连接方法 Historian显然是Microsoft SQL Server OLE DB(参见第102页) 另一篇SO帖子建议,唯一能够连接到OLEDB的python库是“adodbapi” 尝试使用默认RO凭据输入代码: import adodbapi ServerName = "ServerName" MSQLDatabase = "Runtime" username = "aaUser" pass
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软件包的缺失和不可用,而pywin32软件包显然仅限于Windows
谢谢。我高度怀疑,在这种情况下,Microsoft与Mac/Linux之间的世界无法桥接。您应该能够使用Python访问MS SQL Server数据库,例如Wonderware Historian数据库 检查事项: 对于ODBC,可信连接设置应为否。可信连接意味着它尝试使用Windows身份验证登录。您想改用用户名和密码。我认为对于OLE DB,您可以设置integratedsecurity=SSPI。 连接字符串用户名、服务器主机名/IP、数据库名称、正确的端口、语法 端口确保使用正确的端口-可能是非标准端口 防火墙-确保所有防火墙都已设置为允许访问 如果您使用的是主机名,请确保DNS正常工作,例如,是否可以ping服务器? 您可能需要为Linux和pyodbc安装ODBC驱动程序。ODBC是一种更开放的标准。正如您所指出的,OLEDB是基于COM的,例如基于Windows的,所以我不确定它是否兼容。
您应该能够使用Python访问MS SQL Server数据库,例如Wonderware Historian数据库 检查事项: 对于ODBC,可信连接设置应为否。可信连接意味着它尝试使用Windows身份验证登录。您想改用用户名和密码。我认为对于OLE DB,您可以设置integratedsecurity=SSPI。 连接字符串用户名、服务器主机名/IP、数据库名称、正确的端口、语法 端口确保使用正确的端口-可能是非标准端口 防火墙-确保所有防火墙都已设置为允许访问 如果您使用的是主机名,请确保DNS正常工作,例如,是否可以ping服务器? 您可能需要为Linux和pyodbc安装ODBC驱动程序。ODBC是一种更开放的标准。正如您所指出的,OLEDB是基于COM的,例如基于Windows的,所以我不确定它是否兼容。
我可以在Linux和Windows上通过sqlalchemy和pyodbc使用Python3访问Wonderware服务器-我没有Mac电脑,所以你可以自己在那里。我已经读到有其他的驱动程序可用,但我没有任何经验与他们。如果你在这里有任何建议,我很高兴听到 这就是我模块化pyodbc功能的方式。基本上,我在代码中定义了一个函数,用于设置sql引擎连接:
def get_conn():
conn_pyodbc = pyodbc.connect(DSN=<myDSN>, UID=<user>, PWD=<pass>)
return conn_pyodbc
使用上下文管理器似乎是处理打开和关闭数据库连接的一种更简单的方法
至于设置DSN,我需要安装MicrosoftODBC驱动程序,这非常简单,只需遵循我在网上找到的一些链接即可完成。成功安装后,我手动编辑了/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>
根据我的经验,您可以使用“可信连接”,但这意味着您的计算机将尝试使用其Windows凭据连接到服务器。如果您登录到有权访问相关数据的Windows计算机,则这些功能将正常工作。在Linux上运行是另一回事,所以我选择用户/密码组合
还有问题可以问。我可以在Linux和Windows上通过sqlalchemy和pyodbc使用Python3访问Wonderware服务器-我没有Mac电脑,所以你可以自己访问。我已经读到有其他的驱动程序可用,但我没有任何经验与他们。如果你在这里有任何建议,我很高兴听到 这就是我模块化pyodbc功能的方式。基本上,我在代码中定义了一个函数,用于设置sql引擎连接:
def get_conn():
conn_pyodbc = pyodbc.connect(DSN=<myDSN>, UID=<user>, PWD=<pass>)
return conn_pyodbc
使用上下文管理器似乎是处理打开和关闭数据库连接的一种更简单的方法
至于设置DSN,我需要安装MicrosoftODBC驱动程序,这非常简单,只需遵循我在网上找到的一些链接即可完成。成功安装后,我手动编辑了/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>
根据我的经验,您可以使用“可信连接”,但这意味着您的计算机将尝试使用其Windows凭据连接到服务器。如果您登录到有权访问相关数据的Windows计算机,则这些功能将正常工作。在Linux上运行是另一回事,所以我选择用户/密码组合
还有问题可以问