GBase Python 接口开发手册(二)

4.2 使用游标操作数据库 使用游标操作数据库资源,包括:执行 SQL 语句、调用存储过程、执行事 务、获取结果集操作。

4.2.1执行 SQL 语句 连接创建后,可以使用连接的 cursor 方法生成游标,然后可以使用游标执 行SQL语句和获取结果集。

4.2.1.1 执行单条语句 使用游标执行单条SQL语句。 from GBaseConnector import connect, GBaseError if __name__ == '__main__': config = {'host':'172.16.0.131', 'user':'root', 'passwd':'111111', 'port':5258} try: conn = connect() conn.connect(**config) cur = conn.cursor() cur.execute("CREATE DATABASE test") except GBaseError.DatabaseError, err: print err finally: conn.close()

4.2.1.2 执行多条语句 使用游标执行多条SQL语句。 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("CREATE TABLE IF NOT EXISTS test(id INT, name VARCHAR(20))") cur.execute("INSERT INTO test VALUES(%s,%s)", (1,'hello')) iters = cur.execute("UPDATE test SET id=%s,name=%s;DELETE FROM test;SELECT 'result';", params=(2,'world'), multi_stmt=True) for i in iters: try: print i.fetchall() except GBaseError.InterfaceError: pass cur.execute("DROP TABLE IF EXISTS test") except GBaseError.DatabaseError, err: print err finally: conn.close()

4.2.2获取结果集 当使用游标执行返回结果集的SQL语句后,可以使用游标的 fetchone 方 法获取结果集中的一行数据、fetchmany 方法获取结果集中的多行数据、 fetchall 方法获取结果集中的所有数据。

4.2.2.1获取一行数据 使用游标的 fetchone 方法获取结果集中的一行数据。fetchone 接口可以循 环调用,直到结果集中的数据获取完毕。 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 IF NOT EXISTS test(id INT, name VARCHAR(50))") cur.execute("INSERT INTO test VALUES(1,'hello'), (2,'world')") cur.execute("SELECT * FROM test") row = cur.fetchone() while row is not None: print row row = cur.fetchone() cur.execute("DROP TABLE IF EXISTS test") except GBaseError.DatabaseError, err: print err finally: conn.close()

4.2.2.2获取多行数据 使用游标的 fetchmany 方法获取结果集中的多行数据。fetchmany 接口可以 循环调用,直到结果集中的数据获取完毕。 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) cur.execute("SELECT * FROM test") row = cur.fetchmany(3) while row: print row row = cur.fetchmany(4) cur.execute("DROP TABLE IF EXISTS test") except GBaseError.DatabaseError, err: print err finally: conn.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值