From dc949f3c341163b1fe7db9652767855a555eccef Mon Sep 17 00:00:00 2001 From: eelke Date: Fri, 25 Oct 2019 13:50:11 +0200 Subject: [PATCH] Fix crash when trying to save row data when row is not yet valid --- pglab/CrudModel.cpp | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/pglab/CrudModel.cpp b/pglab/CrudModel.cpp index 7646a71..c4843ef 100644 --- a/pglab/CrudModel.cpp +++ b/pglab/CrudModel.cpp @@ -435,21 +435,26 @@ std::tuple CrudModel::updateRow(const PendingRow & Pgsql::Connection db_update_conn; auto dbconfig = m_database->config(); db_update_conn.connect(dbconfig.connectionString().toStdString().c_str()); - auto result = db_update_conn.queryParam(buffer, params); - if (result && result.rows() == 1) { + try { + auto result = db_update_conn.queryParam(buffer, params); + if (result && result.rows() == 1) { - std::vector values; - auto row = *result.begin(); - for (auto v : row) { - if (v.null()) - values.push_back(Value()); - else - values.push_back(std::string(v.c_str())); + std::vector values; + auto row = *result.begin(); + for (auto v : row) { + if (v.null()) + values.push_back(Value()); + else + values.push_back(std::string(v.c_str())); + } + + ModifiedRow modified_row(row_number, values); + + return { true, modified_row }; } - - ModifiedRow modified_row(row_number, values); - - return { true, modified_row }; + } + catch (const Pgsql::PgResultError &ex) { + //Mes } } return { false, {} };