Dart DocumentationutilsQueryRunner

QueryRunner class

Runs a list of arbitrary queries. Currently only handles update queries as the results are ignored.

class QueryRunner {
 final ConnectionPool pool;
 final List<String> queries;
 final List<String> _queries = [];
 
 /**
  * Create a [QueryRunner]. Needs a [pool] and
  * a list of [queries]. 
  */
 QueryRunner(this.pool, this.queries);
 
 Future _executeQueries(Completer c) {
   var query = _queries.removeAt(0);
   pool.query(query).then((result) {
     if (_queries.length == 0) {
       c.complete(null);
     } else {
       _executeQueries(c);
     }
   })
   .catchError((e) {
     c.completeError(e);
   });
 }

 /**
  * Executes the queries this [QueryRunner] was created with. The
  * returned [Future] completes when all the queries have been executed.
  * Results are ignored.
  * 
  * Do not run this a second time until the future has completed.
  */
 Future executeQueries() {
   var c = new Completer();
   _queries.clear();
   _queries.addAll(queries);
   _executeQueries(c);
   return c.future;
 }
}

Constructors

new QueryRunner(ConnectionPool pool, List<String> queries) #

Create a QueryRunner. Needs a pool and a list of queries.

QueryRunner(this.pool, this.queries);

Properties

final ConnectionPool pool #

final ConnectionPool pool

final List<String> queries #

final List<String> queries

Methods

Future executeQueries() #

Executes the queries this QueryRunner was created with. The returned Future completes when all the queries have been executed. Results are ignored.

Do not run this a second time until the future has completed.

Future executeQueries() {
 var c = new Completer();
 _queries.clear();
 _queries.addAll(queries);
 _executeQueries(c);
 return c.future;
}