code: function runQuery(query, connection) {
    const config = {
      user: connection.username,
      password: connection.password,
      connection_string: connection.connection_string
    };
    // TODO use connection pool
    // TODO handle connection.maxRows
  
    let cn = config.connection_string;
  
    // Not all drivers require auth
    if (config.user) {
      cn = cn + ';Uid=' + config.user;
    }
    if (config.password) {
      cn = cn + ';Pwd=' + config.password;
    }
  
    return openConnection(cn)
      .then(() => executeQuery(query))
      .then(queryResult => {
        odbc.close(); // TODO consider putting into finally()?
        return Promise.resolve({ rows: queryResult, incomplete: false });
      })
      .catch(function(e) {
        console.error(e, e.stack);
      });
  }
docs: Run query for connection
  Should return { rows, incomplete }
  @param {string} query
  @param {object} connection