将 Python 连接到 SAGE 100 MAS 90 4.0 ODBC 驱动程序
Connect Python to SAGE 100 MAS 90 4.0 ODBC Driver
有没有办法通过 python 将 SAGE 100 与 MAS 90 4.0 ODBC 驱动程序 (PVXODBC.DLL) 连接起来?我曾尝试使用 pyodbc,但遇到了错误。我已经在 windows 中使用正确的凭据设置了 DSN 名称。我正在使用 DSN 通过 pentaho(一个 etl 工具)连接到数据库并且它有效。
pyodbc.connect("DSN=DSN_NAME")
Error: ('IM014', '[IM014] [Microsoft][ODBC Driver Manager] The specified DSN
contains an architecture mismatch between the Driver and Application (0)
(SQLDriverConnect)')
我也试过这个:
pyodbc.connect("DSN=DSN_NAME;DRIVER={MAS 90 4.0 ODBC DRIVER}")
我得到了同样的错误。
您似乎在使用 32 位驱动程序和 64 位 ODBC,反之亦然。
这段代码对我有用:
import pyodbc
serial = '100170'
cnxn = pyodbc.connect("DSN=SOTAMAS64", autocommit=True)
cursor = cnxn.cursor()
cursor.execute("SELECT SalesOrderNo ,UDF_SERIAL_NUMBER FROM SO_SalesOrderHistoryHeader WHERE UDF_SERIAL_NUMBER = ? ORDER BY SalesOrderNo", serial)
row = cursor.fetchone()
if row:
print(row)
DSN 是使用 MAS 90 4.0 ODBC 驱动程序(64 位)设置的系统 dsn。
使用 Winpython 3.5。
有没有办法通过 python 将 SAGE 100 与 MAS 90 4.0 ODBC 驱动程序 (PVXODBC.DLL) 连接起来?我曾尝试使用 pyodbc,但遇到了错误。我已经在 windows 中使用正确的凭据设置了 DSN 名称。我正在使用 DSN 通过 pentaho(一个 etl 工具)连接到数据库并且它有效。
pyodbc.connect("DSN=DSN_NAME")
Error: ('IM014', '[IM014] [Microsoft][ODBC Driver Manager] The specified DSN
contains an architecture mismatch between the Driver and Application (0)
(SQLDriverConnect)')
我也试过这个:
pyodbc.connect("DSN=DSN_NAME;DRIVER={MAS 90 4.0 ODBC DRIVER}")
我得到了同样的错误。
您似乎在使用 32 位驱动程序和 64 位 ODBC,反之亦然。
这段代码对我有用:
import pyodbc
serial = '100170'
cnxn = pyodbc.connect("DSN=SOTAMAS64", autocommit=True)
cursor = cnxn.cursor()
cursor.execute("SELECT SalesOrderNo ,UDF_SERIAL_NUMBER FROM SO_SalesOrderHistoryHeader WHERE UDF_SERIAL_NUMBER = ? ORDER BY SalesOrderNo", serial)
row = cursor.fetchone()
if row:
print(row)
DSN 是使用 MAS 90 4.0 ODBC 驱动程序(64 位)设置的系统 dsn。 使用 Winpython 3.5。