# Class DmlResult (3.7.0-rc)

3.7.0-rc 3.6.0 (latest) 3.5.0 3.4.0 3.3.0 3.2.0 2.48.0-rc 2.47.1 2.46.0 2.45.0 2.44.0 2.43.0 2.42.0 2.41.0 2.40.0 2.39.0 2.38.0 2.37.0 2.36.0 2.35.0 2.34.0 2.33.0 2.32.0 2.31.0 2.30.0 2.29.0 2.28.0 2.27.0 2.26.0 2.25.1 2.24.0 2.23.0 2.22.1 2.21.0 2.20.0 2.19.0 2.18.0 2.17.0 2.16.0 2.15.1 2.14.0 2.13.0 2.12.0 2.11.0 Represents the result of a data modifying operation using [`spanner::Client::ExecuteDml()`](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Client#classgoogle_1_1cloud_1_1spanner_1_1Client_1aec1b7d1cd45111126af5aa3b69c8eed0).
This class encapsulates the result of a Cloud Spanner DML operation, i.e., `INSERT`, `UPDATE`, or `DELETE`.

> [!NOTE]
> **Note:** `ExecuteDmlResult` returns the number of rows modified.

###### Example:

      using ::google::cloud::StatusOr;
      namespace spanner = ::google::cloud::spanner;
      std::int64_t rows_inserted;
      auto commit_result = client.Commit(
          [&client, &rows_inserted](
              spanner::Transaction txn) -> StatusOr<spanner::Mutations> {
            auto insert = client.ExecuteDml(
                std::move(txn),
                spanner::SqlStatement(
                    "INSERT INTO Singers (SingerId, FirstName, LastName)"
                    "  VALUES (10, 'Virginia', 'Watson')"));
            if (!insert) return std::move(insert).status();
            rows_inserted = insert->RowsModified();
            return spanner::Mutations{};
          });
      if (!commit_result) throw std::move(commit_result).status();
      std::cout << "Rows inserted: " << rows_inserted;

## Constructors

### DmlResult()

### DmlResult(std::unique_ptr\< ResultSourceInterface \>)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `source` | `std::unique_ptr< ResultSourceInterface >` |

### DmlResult(DmlResult \&\&)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
|   | `DmlResult &&` |

## Operators

### operator=(DmlResult \&\&)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
|   | `DmlResult &&` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `DmlResult &` |   |

## Functions

### RowsModified() const

Returns the number of rows modified by the DML statement.

> [!NOTE]
> **Note:** Partitioned DML only provides a lower bound of the rows modified, all other DML statements provide an exact count.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `std::int64_t` |   |