簡體   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