gpt4 book ai didi

python - pyodbc 插入 sql

转载 作者:IT老高 更新时间:2023-10-28 22:10:57 24 4
gpt4 key购买 nike

我使用 MS SQL express 数据库。我可以连接并获取数据。但是插入数据不起作用:

cursor.execute("insert into [mydb].[dbo].[ConvertToolLog] ([Message]) values('test')")

我没有收到任何错误,但表中没有插入任何内容。在我获取数据后立即获取插入的行。但是什么都没有保存。

在 MS SQL Server Management Studio 中,插入确实有效。

最佳答案

您需要提交数据。每个 SQL 命令都在一个事务中,必须提交事务才能将事务写入 SQL Server,以便其他 SQL 命令可以读取。

在 MS SQL Server Management Studio 下,默认设置是允许自动提交,这意味着每个 SQL 命令都会立即生效,并且您不能回滚。

示例来自 pyodbc Getting Started document

首先打开数据库并设置游标

import pyodbc

# Specifying the ODBC driver, server name, database, etc. directly
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass')

# Create a cursor from the connection
cursor = cnxn.cursor()

然后在文档中插入示例

# Do the insert
cursor.execute("insert into products(id, name) values ('pyodbc', 'awesome library')")
#commit the transaction
cnxn.commit()

或更好地使用参数

cursor.execute("insert into products(id, name) values (?, ?)", 'pyodbc', 'awesome library')
cnxn.commit()

如文件所述

Note the calls to cnxn.commit(). You must call commit or your changes will be lost! When the connection is closed, any pending changes will be rolled back. This makes error recovery very easy, but you must remember to call commit.

关于python - pyodbc 插入 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com