diff --git a/src/fp/fplib01.cpp b/src/fp/fplib01.cpp index 5eb92e23f..75bd61584 100644 --- a/src/fp/fplib01.cpp +++ b/src/fp/fplib01.cpp @@ -417,12 +417,25 @@ TString& TPaf_record::remove_string(const bool id_riga) query << " AND " << prefix << "KEYPRGINVIO != ''"; CHECKS(++nkf >= 2, "Can't remove partial key on table ", static_cast(_table)); query << ';'; + + if (nkf == 0) + query.cut(0); // Crea una query sbagliata "WHERE AND": "DELETE FROM [table] WHERE AND [prefix]_KEYPRGINVIO != '';" return query; } // Elimina il record in base ai campi chiave bool TPaf_record::remove() { - return fp_db().sq_set_exec(remove_string()); + TString& str = remove_string(); + if (str.empty()) // Se la query e' vuota (sbagliata) salto, non c'e' nulla da eliminare + return true; + const bool ok = fp_db().sq_set_exec(str); + if (!ok) + { + ofstream fout; + fout.open("fperror_remove.txt"); + fout << str << "\n" << fp_db().sq_get_text_error(false) << "\n" << fp_db().sq_get_string_error(false); + } + return ok; } // Carica un record in base ai campi chiave bool TPaf_record::search()