Patch level : 12.0 986

Files correlati     : f90.exe
Commento            :
- Modifica creazione query per creazione prospetto integrativo: aggiunti doppi apici.
- Aggiunta possibilita' di salvare messaggio di errore in sqlite.
This commit is contained in:
Simone Palacino 2020-07-29 17:45:19 +02:00
parent d0734d97e8
commit cb5a7ffe65
3 changed files with 24 additions and 6 deletions

View File

@ -512,6 +512,8 @@ public:
class TProspetto_recset final : public TSQL_recordset class TProspetto_recset final : public TSQL_recordset
{ {
TString _query;
TString* _numreg; TString* _numreg;
TString* _today; TString* _today;
TString* _ragsoc; TString* _ragsoc;
@ -545,6 +547,7 @@ class TProspetto_recset final : public TSQL_recordset
void precarica_tabelle(); void precarica_tabelle();
public: public:
const TString& get_query() const { return _query; }
static void get_sum_imponibile_imposta(const char* numreg_ven, real& s_imponibili, real& s_imposte); static void get_sum_imponibile_imposta(const char* numreg_ven, real& s_imponibili, real& s_imposte);
TProspetto_recset(const char* numreg_acq, const char* numreg_ven); TProspetto_recset(const char* numreg_acq, const char* numreg_ven);

View File

@ -1113,6 +1113,11 @@ TEstrazione::TEstrazione(const TString& ambiente, const bool flag_prov, const ch
_escluso = escluso; _escluso = escluso;
_error_sql = new ofstream; _error_sql = new ofstream;
_error_sql->open("f9_TEstrazione_error_sql.txt"); _error_sql->open("f9_TEstrazione_error_sql.txt");
// Svuoto log.
FILE* f = fopen("TF9Prospetto_integr_error.txt", "w");
fwrite("\n", sizeof(char), 1, f);
fclose(f);
} }

View File

@ -519,6 +519,7 @@ TProspetto_recset::TProspetto_recset(const char* numreg_acq, const char* numreg_
"JOIN TABCOM\n" "JOIN TABCOM\n"
"ON COD = 'IVA' AND CODTAB = B.CODIVA"; "ON COD = 'IVA' AND CODTAB = B.CODIVA";
_query = sql;
set(sql); set(sql);
} }
@ -596,18 +597,27 @@ bool TF9Prospetto_integr::operator()(const char* numreg_acq, const char* numreg_
TProspetto_recset* _prosp_rs = new TProspetto_recset(numreg_acq, numreg_ven); TProspetto_recset* _prosp_rs = new TProspetto_recset(numreg_acq, numreg_ven);
_items = _prosp_rs->items(); _items = _prosp_rs->items();
if (_items > 0) if (_items == 0)
{ {
FILE* log = fopen("TF9Prospetto_integr_error.txt", "a");
if (!_prosp_rs->last_exec()) if (!_prosp_rs->last_exec())
{ {
ofstream fout("TF9Prospetto_integr_error.txt"); if (log != nullptr)
fout << _prosp_rs->get_err_msg(); {
fout.close(); TString msg("\n"); msg << _prosp_rs->get_err_msg() << "\n";
fwrite((const char*)msg, sizeof(char), msg.len(), log);
}
fclose(log);
return false; return false;
} }
} else if (log != nullptr)
else {
TString msg("\n"); msg << _prosp_rs->get_query() << "\n - Nessun record trovato!\n\n";
fwrite(msg, sizeof(char), msg.len(), log);
}
fclose(log);
return false; return false;
}
_rep.set_recordset(_prosp_rs); _rep.set_recordset(_prosp_rs);
_book.add(_rep); _book.add(_rep);