The Python AsyncDistributedConnection Class

The AsyncDistributedConnection class represents a distributed SQL connection. It provides the single methods execute():

 
    AsyncDistributedConnection.execute( queries, args) 
 

The arguments queries and args are arrays of values. The queries array contains the SQL statements to be executed while the args array contains the parameter values to be inserted into the SQL statement wherever the question mark character "?" appears. For example, the following code snippet prepares two insert statements:

     
    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))
 

For SQL insert, update or delete statements, the execute() method returns an integer value indicating the number of rows affected. For example, the following code snippet would print out the number of rows inserted by the two insert statements created above:

     
    r = conn.execute(q, args)
    print "len(r)=", len(r)
    for k in range(len(r)):
        pprint.pprint(r[k])
         

For SQL select statements (queries), the execute() method returns result sets. For example, the following code snippet executes four queries (that do not require arguments) then displays their result sets:

     
    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])