我有一段看起来像这样的代码:
conn=sybpydb.connect(user=args.u, password=args.p,servername=args.s)
cur = conn.cursor()
cur.execute(sql)
print(cur.connections.messages)
执行可能需要 5 分钟才能运行,然后它会打印我的输出。我想知道是否有任何方法可以在执行运行时打印输出行而不是等到它完成并将其全部作为一个大批量获取?
filmor 是对的:检索光标上运行的结果。
sybpydb 包是 Sybase 提供的PEP 249实现。因此,您检索的 Cursor 对象有一些方法,例如 fetchone 和 fetchall。
您的代码,逐行检索结果并对其进行处理,将是:
# Preparation your connection and cursor for fetching results
conn = sybpydb.connect(user=args.u, password=args.p, servername=args.s)
cur = conn.cursor()
cur.execute(sql)
# Reading result one by one
for row in cur.fetchone():
# Do something with your current results
print(row)
# Closing cursor and connection
cur.close()
conn.close()