| 161 | } |
| 162 | |
| 163 | Status Sqlite::Prepare(const StringPiece& sql, SqliteStatement* stmt) { |
| 164 | SqliteLock lock(*this); |
| 165 | sqlite3_stmt* ps = nullptr; |
| 166 | int rc = sqlite3_prepare_v2(db_, sql.data(), static_cast<int>(sql.size()), |
| 167 | &ps, nullptr); |
| 168 | if (rc != SQLITE_OK) { |
| 169 | *stmt = SqliteStatement(); |
| 170 | return PrintfStatus(rc, "Prepare() failed: [%d] %s: %.*s", rc, errmsg(), |
| 171 | sql.size(), sql.data()); |
| 172 | } |
| 173 | *stmt = SqliteStatement(this, ps); |
| 174 | return Status::OK(); |
| 175 | } |
| 176 | |
| 177 | Status SqliteStatement::Step(bool* is_done) { |
| 178 | DCHECK(stmt_ != nullptr); |