Fix crash when trying to save row data when row is not yet valid

This commit is contained in:
eelke 2019-10-25 13:50:11 +02:00
parent e891ec9d54
commit dc949f3c34

View file

@ -435,21 +435,26 @@ std::tuple<bool, CrudModel::ModifiedRow> CrudModel::updateRow(const PendingRow &
Pgsql::Connection db_update_conn; Pgsql::Connection db_update_conn;
auto dbconfig = m_database->config(); auto dbconfig = m_database->config();
db_update_conn.connect(dbconfig.connectionString().toStdString().c_str()); db_update_conn.connect(dbconfig.connectionString().toStdString().c_str());
auto result = db_update_conn.queryParam(buffer, params); try {
if (result && result.rows() == 1) { auto result = db_update_conn.queryParam(buffer, params);
if (result && result.rows() == 1) {
std::vector<Value> values; std::vector<Value> values;
auto row = *result.begin(); auto row = *result.begin();
for (auto v : row) { for (auto v : row) {
if (v.null()) if (v.null())
values.push_back(Value()); values.push_back(Value());
else else
values.push_back(std::string(v.c_str())); values.push_back(std::string(v.c_str()));
}
ModifiedRow modified_row(row_number, values);
return { true, modified_row };
} }
}
ModifiedRow modified_row(row_number, values); catch (const Pgsql::PgResultError &ex) {
//Mes
return { true, modified_row };
} }
} }
return { false, {} }; return { false, {} };