AsyncDistributedConnection
AsyncDistributedConnection 类表示分布式 SQL 连接。它提供了单个方法 execute() :
AsyncDistributedConnection.execute( queries, args)
参数 queries 和 args 是值的数组。queries 数组包含要执行的 SQL 语句,而 args 数组包含要插入到 SQL 语句中每个问号字符“?”出现位置的参数值。例如,以下代码片段准备了两条插入语句:
nWorkers = 2
q = ["INSERT INTO MyTable(pk, value, u2, i1, i2, i4, i8, flt, dbl)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"] * nWorkers
args = []
for i in xrange(nWorkers):
args.append((i*100, 'str%s' % i, i, i, i, i, i, i*100, i*100.9))
对于 SQL 的插入、更新或删除语句,execute() 方法会返回一个整数值,表示受影响的行数。例如,以下代码片段会打印出上面创建的两个插入语句所插入的行数:
r = conn.execute(q, args)
print "len(r)=", len(r)
for k in range(len(r)):
pprint.pprint(r[k])
对于 SQL 的 select 语句(查询),execute() 方法会返回结果集。例如,以下代码片段执行了四个查询(这些查询不需要参数),然后显示了它们的结果集:
q = [
"SELECT COUNT(*) FROM MyTable",
"SELECT SUM(pk) FROM MyTable",
"SELECT SUM(i1) FROM MyTable",
"SELECT SUM(i2) FROM MyTable"
]
r = conn.execute(q, None)
print "len(r)=", len(r)
for k in range(len(r)):
pprint.pprint(r[k])