execute method

Future<int> execute(
  1. String fmtString,
  2. {Map<String, Object?>? values,
  3. int? timeoutInSeconds,
  4. int? expectedResultCount,
  5. bool useExtendedQuery = false}
)

Implementation

Future<int> execute(
  String fmtString, {
  Map<String, Object?>? values,
  int? timeoutInSeconds,
  int? expectedResultCount,
  bool useExtendedQuery = false,
}) async {
  try {
    assert(_assertCorrectValues(values));
    _logger.finest('Executing query: $fmtString with values: $values');

    final int result;
    if (useExtendedQuery) {
      final sqlResult = await _conn.query(fmtString,
          substitutionValues: values, timeoutInSeconds: timeoutInSeconds);
      result = sqlResult.affectedRowCount;
    } else {
      result = await _conn.execute(fmtString,
          substitutionValues: values, timeoutInSeconds: timeoutInSeconds);
    }
    if (expectedResultCount != null && result != expectedResultCount) {
      throw StateError(
          'Expected result: $expectedResultCount but got $result. '
          'for query: $fmtString');
    }
    return result;
  } catch (e, stackTrace) {
    _logger.warning(
        'Error while running statement $fmtString', e, stackTrace);
    rethrow;
  }
}