#coding:utf-8
import pymssql
def connect():
connect=pymssql.connect((‘xxxx’),‘xx’,‘xxxx’,‘xxxx’)
cursor = connect.cursor() # 创建游标
sql001='select *from xxxxx where xxxxx=273and Status=1 order by sysno desc'#查询语句
cursor.execute(sql001)
row=cursor.fetchone()#读取查询结果
print(row)
if row==None:
print("没有查到数据")
else:
while row:
print("sysno=%s" % (row[0]))
cursor.execute("update xxxxxset Status=-1 where SysNo=%d", row[0]) # 执行语句\
connect.commit()
print(row)
cursor.execute(sql001)
row=cursor.fetchone()
#print(row)
connect()
这个也能实现我的所需要的功能,就是把查询出来的数据的syson作为update语句的条件。这个不好的就是在循环时没循环一次就要调用数据连接执行sql语句,会影响性能和加大资源的开销。
现在改成的代码如下:
#coding:utf-8
import pymssql
def connect():
connect=pymssql.connect((‘xxxxx’),‘sa’,‘xxxxx’,‘xxxxxx’)
cursor = connect.cursor() # 创建游标
sql001='select *from xxxx where xxxx=273and Status=1 order by sysno desc'#查询语句
cursor.execute(sql001)
#row=cursor.fetchone()#读取查询结果
rowall=cursor.fetchall()#获取所有查询结果
print(rowall)
i=0
#print(row)
if rowall==[]:
print("没有查到数据")
else:
while i
connect()
之前使用了fetchone 现在使用fetchall一次那多所有查询结果再用while 获取所需要的值,这样就会减少执行完update语句再次执行一次查询语句,减少了对数据库的操作。