SQL分布式事务。从 SQL VIEW 获取数据时出现问题

问题描述 投票:0回答:1

我是 SQL 2000 的 Microsoft SQL VIEW 最终用户。

到目前为止,我正在使用 Excel Microsoft Query 来获取数据。可以正常使用。

我决定改进我的工作并重新安排使用此视图的工作。

我编写了 python 脚本,该脚本应该获取数据、进行一些计算、导出到 Excel 并将其发送给许多收件人。 但是 python 脚本在获取数据时出现问题,显示错误:

无法执行该操作,因为 OLE DB 提供程序“SQLOLEDB”无法开始分布式事务。 (7391) (SQLExecDirectW); [42000] [Microsoft][ODBC SQL Server 驱动程序][SQL Server][OLE/DB 提供程序返回消息:新事务无法在指定的事务协调器中登记。 ](7312); [42000] [Microsoft][ODBC SQL Server 驱动程序][SQL Server]OLE DB 错误跟踪 [OLE/DB 提供程序“SQLOLEDB”ITransactionJoin::JoinTransaction 返回 0x8004d00a]。 (7300)`

Excel 连接工作正常,只是 python 脚本不起作用。

Python 脚本非常简单,并且可以与放置在该服务器上的其他视图一起使用。

connectionString = f'DRIVER={{SQL Server}};SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD};WSID={WSID};APP={APP}'
conn=pyodbc.connect(connectionString)

sql = 'SELECT * FROM VIEW_DATA'
conn_cursor=conn.cursor()
cursor.execute(sql)
sql_data = cursor.fetchall()

也许有人有类似的问题并解决了?

Excel 可以工作,但 python 不行,这让我抓狂。

python sql sql-server sql-server-2000
1个回答
0
投票

作为@siggemannen

在创建连接时尝试使用 autocommit=True 。只是一个猜测,但也许 pyodbc 启动了一些 sql server 2000 不喜欢的事务。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.