}
bool SQLiteStatement::BindString(int pos, const std::string& val) {
- int r = sqlite3_bind_text(stmt_, pos, val.c_str(), -1, SQLITE_STATIC);
+ int r = sqlite3_bind_text(stmt_, pos, val.c_str(), -1, SQLITE_TRANSIENT);
if (r != SQLITE_OK) {
LOG(ERROR) << "sqlite3_bind_text() failed: " << GetErrorMessage();
sql_conn_->SetErrorCode(r);
}
bool SQLiteStatement::BindBlob(int pos, const std::vector<unsigned char>& val) {
- int r = sqlite3_bind_blob(stmt_, pos, val.data(), val.size(), SQLITE_STATIC);
+ int r = sqlite3_bind_blob(stmt_, pos, val.data(), val.size(),
+ SQLITE_TRANSIENT);
if (r != SQLITE_OK) {
LOG(ERROR) << "sqlite3_bind_blob() failed: " << GetErrorMessage();
sql_conn_->SetErrorCode(r);
std::string SQLiteStatement::GetColumnString(int pos) const {
const char* val = reinterpret_cast<const char*>(
sqlite3_column_text(stmt_, pos));
- if (!val) {
- LOG(ERROR) << "sqlite3_column_text() failed: " << GetErrorMessage();
+ if (!val)
return {};
- }
return std::string(val);
}
std::vector<unsigned char> SQLiteStatement::GetColumnBlob(int pos) const {
const unsigned char* val = reinterpret_cast<const unsigned char*>(
sqlite3_column_blob(stmt_, pos));
- if (!val) {
- LOG(ERROR) << "sqlite3_column_blob() failed: " << GetErrorMessage();
+ if (!val)
return {};
- }
int len = sqlite3_column_bytes(stmt_, pos);
if (len < 0) {
LOG(ERROR) << "sqlite3_column_bytes() failed: " << GetErrorMessage();