dan*_*iel 30 python sql python-2.6 pyodbc sql-server-express
我使用MS SQL express db.我可以连接和获取数据.但插入数据不起作用:
cursor.execute("insert into [mydb].[dbo].[ConvertToolLog] ([Message]) values('test')")
Run Code Online (Sandbox Code Playgroud)
我没有得到任何错误,但没有插入表中.在我获取数据之后,直接获取插入的行.但没有任何东西得救.
在MS SQL Server Management Studio中,插入确实有效.
use*_*019 62
您需要提交数据.每个SQL命令都在一个事务中,并且必须提交事务以将事务写入SQL Server,以便其他SQL命令可以读取它.
在MS SQL Server Management Studio下,默认情况下允许自动提交,这意味着每个SQL命令都会立即生效,您无法回滚.
pyodbc入门文档中的插入示例是
cursor.execute("insert into products(id, name) values ('pyodbc', 'awesome library')")
cnxn.commit()
Run Code Online (Sandbox Code Playgroud)
或更好地使用参数
cursor.execute("insert into products(id, name) values (?, ?)", 'pyodbc', 'awesome library')
cnxn.commit()
Run Code Online (Sandbox Code Playgroud)
正如文件所说
请注意对cnxn.commit()的调用.您必须致电提交或您的更改将丢失!关闭连接后,将回滚任何挂起的更改.这使得错误恢复非常容易,但您必须记住调用commit.