更新日期:2024年09月11日
获取下一个结果集
当有多个结果集返回时,可以使用游标的nextset 方法跳过结果集后直接
获取下一个结果集的数据。
from GBaseConnector import connect, GBaseError
if __name__ == '__main__':
config = {'host':'172.16.0.131',
'user':'root',
'passwd':'111111',
'port':5258,
'db':'test'}
try:
conn = connect()
conn.connect(**config)
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS test")
cur.execute("CREATE TABLE test (COL1 INT, COL2 VARCHAR(20))")
opfmt = "INSERT INTO test(COL1, COL2) VALUES(%s, %s)"
rows = []
for i in xrange(0, 100):
rows.append((i, "row" + str(i)))
cur.executemany(opfmt, rows)
GBase Python 接口开发手册
- 12 -
南大通用数据技术股份有限公司
cur.execute("SELECT
*
FROM
test
limit
5;SELECT
*
FROM
TEST
LIMIT
10,
5;SELECT
* FROM TEST LIMIT 15, 5", multi_stmt= True)
cur.nextset(2)
print cur.fetchall()
cur.execute("DROP TABLE IF EXISTS test")
except GBaseError.DatabaseError, err:
print err
finally:
conn.close()
注意:获取下一个结果集方法nextset 不能在遍历过程中使用,如下面的
例子。
iters
=
cur.execute("SELECT
*
FROM
test
limit
5;SELECT
*
FROM
TEST
LIMIT
10,
5;SELECT
* FROM TEST LIMIT 15, 5", multi_stmt= True)
for ter in iters:
cur.nextset()
print cur.fetchall()