execute method

  1. @override
Future<SqlWriteResult> execute(
  1. BoundSql statement
)
override

Executes a D1 write and rejects results that contain returned rows.

D1 cannot distinguish a write from a row-returning statement that happens to return zero rows. Callers must therefore follow SqlExecutor's contract and use query for every potentially row-returning statement.

Implementation

@override
Future<SqlWriteResult> execute(BoundSql statement) async {
  _ensureOpen();
  _requireTopLevelExecute(statement);
  final JSAny? result;
  try {
    result = await _prepare(statement).run().toDart;
  } on Object catch (error) {
    _throwD1(error);
  }
  return _readWriteResult(result);
}