在这些示例代码的开头,我在数据库中有3个条目:“Old\u 1”、“Old\u 2”和“Old\u 3”。在下面的代码中,我两次连接到数据库,每次插入一个条目,然后调用“showall”函数:
# Liberies
import pyodbc
# SQL-Account
dsn = 'sqlserverdatasource'
username = 'xxx'
password = 'xxx'
database = 'xxx'
con_string = 'DSN=%s;UID=%s;PWD=%s;DATABASE=%s;' % (dsn, username, password, database)
def showall():
cursor = cnxn.cursor()
sqlstr = "SELECT sensless FROM test"
cursor.execute(sqlstr)
while True:
row = cursor.fetchone()
if not row: break
print row.sensless
cursor.close()
#TEST
cnxn = pyodbc.connect(con_string)
cursor = cnxn.cursor()
sqlstr = "INSERT INTO test (sensless) VALUES ('New_1');"
cursor.execute(sqlstr)
cursor.close()
showall()
cnxn.close()
print('------')
cnxn = pyodbc.connect(con_string)
cursor = cnxn.cursor()
sqlstr = "INSERT INTO test (sensless) VALUES ('New_2');"
cursor.execute(sqlstr)
cursor.close()
showall()
cnxn.close()
生成了以下输出:
Old_1
Old_2
Old_3
New_1
------
Old_1
Old_2
Old_3
New_2
我想知道,因为在第二次调用showall函数时丢失了New\ 1 entrie。看起来数据库只是暂时保存数据。问题是:为什么?-这是因为我正在用ODBC连接数据库吗?你知道吗
要获得此结果,我必须更改什么:
Old_1
Old_2
Old_3
New_1
------
Old_1
Old_2
Old_3
New_1
New_2
非常感谢
您必须提交事务。你知道吗
见the documentation。你知道吗
相关问题 更多 >
编程相关推荐