sql-server - pyodbc:多个连接问题,.ipynb 文件中的 DML 语句未反映在 SQL Server 中
问题描述
我正在使用 pyodbc 连接到本地计算机上的数据库。我有两个 .ipynb 文件,它们分别负责填充该数据库中的两个关系。
我提出的两个观察结果令人不安:
如果一个游标在一个文件中连接到我的数据库,而另一个游标在另一个文件中连接到数据库,则只有一个游标能够执行 DML 并从数据库中检索语句。
如果一个文件中的一个游标将元组插入到关系中,然后与数据库断开连接,然后另一个文件中的游标尝试从由第一个游标更新的关系中检索信息,则不会检索到任何信息。这与在 SQL Server 中执行 select 语句相同。
以下是每个文件中发生的情况的概括:
文件 1.ipynb:
cursor.connect(...)
cursor = conn.cursor()
# big array of commands
commands = ["insert into ... values ...", "insert into ... values ..."]
for line in commands:
cursor.execute(line)
打印出游标的内容表明该语句已成功执行。
现在在 file2.ipynb 中:
cursor.connect(...)
cursor = conn.cursor()
cursor.execute("select * from updatedTable") # this line hangs
for row in cursor:
print(row) # if cursor is disconnected from file1, still nothing is printed
任何帮助解决多个连接和确认数据的持久性将不胜感激。
更新:必须执行 cnxn.commit() 才能保留更改。
解决方案
我不知道命令 cnxn.commit(),在使用它之后我已经实现了预期的行为。
推荐阅读
- google-drive-api - Google - Backup and synch - Way to obtain full listing of skipped files
- spring-boot - Spring Boot Eureka 服务器项目未启动
- c++ - 通过交换节点链接而不是交换值来对链表进行递归选择排序-C++
- python - 是否可以从循环中取消绘制先前绘制的形状?Zelle 图形 Python
- postgresql - gdal 安装后,'ogr2ogr/ogrinfo/gdalinfo' 不被识别为内部或外部命令、可运行程序或批处理文件
- javascript - JavaScript 匿名函数在 lambda 演算中模拟算术,结果返回“未定义”
- python - 使用 pandas 导出和索引 csv 文件
- c# - C# RestSharp 客户端证书获取异常“无法建立 SSL 连接”
- mysql - MySql 加入一对多
- python - Pygame中的自上而下运动/等距运动