insert method

Implementation

Future<Either<ErrorSqlResult, ExecuteSuccesSqlResult>> insert() async {
  return (_prepareInsertSQL()).fold((l) => left(l..methodName = 'insert'),
      (r) async {
    try {
      return (await _sqlConnection.executeCommand('insert', r))
          .fold((l) => left(l), (r) {
        if (_currentRecord.assigned) {
          var x = _records.removeAt(_rowIndex);
          _records.add(x._backup);
          _records.add(x);
          _rowIndex++;
        }

        if (r.dataset != null) {
          _loadReturningValues(r.dataset as Dataset);
        }
        _currentRecord.finalize();

        return right(r);
      });
    } catch (e) {
      return left(ErrorSqlResult(_className, 'insert', '', [e.toString()]));
    }
  });
}