Patch level : 12.0 nopatch

Files correlati     :
Commento        :

Implementazione invio regolarizzazioni al 07/11/2021
This commit is contained in:
Alessandro Bonazzi 2021-11-09 07:53:07 +01:00
parent 74ab2387d9
commit 11d236f90d
2 changed files with 54 additions and 10 deletions

View File

@ -712,6 +712,20 @@ TBaseisamfile::TBaseisamfile(
} }
TBaseisamfile::TBaseisamfile(
const char* name, // @parm Nome del file esterno da aprire
const TTrec & desc) // @parm Indica la descrizione del file
{
const int err = DB_build(name, &desc.rec());
if (err != NOERR)
fatal_box("Non posso creare il file %s : errore n.ro %d", name, err);
_lasterr = NOERR;
TFilename filename(name);
CHECK(filename.full(), "Must define the file to open!");
_logicnum = prefix().get_handle(filename);
_current = new TRectype(this);
}
TBaseisamfile::~TBaseisamfile() TBaseisamfile::~TBaseisamfile()
{ {
SAFE_DELETE(_current); SAFE_DELETE(_current);
@ -941,7 +955,7 @@ int TBaseisamfile::_write(const TRectype& rec)
{ {
if (rec.has_memo()) if (rec.has_memo())
((TRectype&)rec).write_memo(_isam_handle, _recno ); ((TRectype&)rec).write_memo(_isam_handle, _recno );
rec_cache(_logicnum).notify_change(); rec_cache(_logicnum).notify_change();
} }
else else
@ -1089,7 +1103,7 @@ int TBaseisamfile::_remove(const TRectype& rec)
{ {
if (curr().has_memo( )) if (curr().has_memo( ))
curr().init_memo(); curr().init_memo();
rec_cache(_logicnum).notify_change(); rec_cache(_logicnum).notify_change();
DB_flush(fhnd); DB_flush(fhnd);
} }
else else
@ -1372,6 +1386,13 @@ TLocalisamfile::TLocalisamfile(
{ {
} }
TLocalisamfile::TLocalisamfile(
const char* name, // @parm Nome del file esterno da aprire
const TTrec & desc) // @parm Indica la descrizione del file
: TBaseisamfile(name, desc)
{
}
TLocalisamfile::TLocalisamfile(int logicnum, bool tmpfile) TLocalisamfile::TLocalisamfile(int logicnum, bool tmpfile)
: TBaseisamfile(logicnum) : TBaseisamfile(logicnum)
{ {
@ -1475,6 +1496,19 @@ TIsamtempfile::TIsamtempfile(int logicnum, const char* radix, bool create, bool
n.insert("%", 0); n.insert("%", 0);
open(n, create, eod, eox); open(n, create, eod, eox);
TCodeb_handle cb_handle = prefix().get_handle(_isam_handle, _curr_key);
const int dbfreclen = DB_reclen(cb_handle);
const int trcreclen = prefix().get_reclen(logicnum);
if (dbfreclen != trcreclen)
{
TString msg;
msg.format("Lunghezza record incoerente sul file %d (%s): file=%d trc=%d",
num(), (const char*)description(), dbfreclen, trcreclen);
fatal_box(msg);
}
} }
TIsamtempfile::~TIsamtempfile() TIsamtempfile::~TIsamtempfile()
@ -1615,17 +1649,23 @@ int TIsamtempfile::close()
// TExternisamfile // TExternisamfile
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
TExternisamfile::TExternisamfile(const char* name, bool exclusive, bool index) TExternisamfile::TExternisamfile(const char* name, bool exclusive, bool index)
: TLocalisamfile(name) : TLocalisamfile(name)
{ {
init(name, exclusive, index); init(name, exclusive, index);
} }
TExternisamfile::TExternisamfile(const char* name, const char* descname, bool exclusive, bool index) TExternisamfile::TExternisamfile(const char* name, const char* descname, bool exclusive, bool index)
: TLocalisamfile(name, descname) : TLocalisamfile(name, descname)
{ {
init(name, exclusive, index); init(name, exclusive, index);
} }
TExternisamfile::TExternisamfile(const char* name, const TTrec & desc, bool exclusive, bool index)
: TLocalisamfile(name, desc)
{
init(name, exclusive, index);
}
TExternisamfile::~TExternisamfile() TExternisamfile::~TExternisamfile()
{ {
close(); close();
@ -4035,7 +4075,7 @@ TRectype& TRectype::operator =(const char* rec)
const char* TRectype::key(int numkey) const const char* TRectype::key(int numkey) const
{ {
TString& tmp = get_tmp_string(256); TString& tmp = get_tmp_string(256);
__build_key(rec_des(), numkey, _rec, tmp.get_buffer(), false); __build_key(rec_des(), numkey, _rec, tmp.get_buffer(), false);
return tmp; return tmp;
} }
@ -4153,7 +4193,7 @@ bool TRectype::edit(int logicnum, const char* alternate_key_fields, const char*
xvt_fsys_remove_file(ininame); xvt_fsys_remove_file(ininame);
if (ok) if (ok && _logicnum < 1000)
rec_cache(logicnum).notify_change(); rec_cache(logicnum).notify_change();
} }
return ok; return ok;
@ -4378,7 +4418,7 @@ const char* TRecfield::operator =(const char* s)
_rec->put(_name, s); _rec->put(_name, s);
else else
__putfieldbuff( _len, _dec, _type, s, _p); __putfieldbuff( _len, _dec, _type, s, _p);
} }
else else
put_subfield(s); put_subfield(s);
_rec->setempty(FALSE); _rec->setempty(FALSE);

View File

@ -1,4 +1,4 @@
+#ifndef __ISAM_H #ifndef __ISAM_H
#define __ISAM_H #define __ISAM_H
#ifndef __CURRENCY_H #ifndef __CURRENCY_H
@ -430,6 +430,8 @@ protected:
// @cmember Costruttore per derivare TExternisamfile. <p Name> indica il file esterno da aprire. // @cmember Costruttore per derivare TExternisamfile. <p Name> indica il file esterno da aprire.
TBaseisamfile(const char* name, const char* descname = NULL); TBaseisamfile(const char* name, const char* descname = NULL);
// @cmember Costruttore per derivare TExternisamfile. <p Name> indica il file esterno da aprire.
TBaseisamfile(const char* name, const TTrec & desc);
int handle(int key = 0) const; int handle(int key = 0) const;
@ -756,6 +758,8 @@ protected:
TLocalisamfile(int logicnum, bool tmp); TLocalisamfile(int logicnum, bool tmp);
// @cmember Costruttore per derivare TExternisamfile. <p Name> indica il file esterno da aprire (vedi <c TBaseisamfile>). // @cmember Costruttore per derivare TExternisamfile. <p Name> indica il file esterno da aprire (vedi <c TBaseisamfile>).
TLocalisamfile(const char* name, const char* descname = NULL); TLocalisamfile(const char* name, const char* descname = NULL);
// @cmember Costruttore per derivare TExternisamfile. <p Name> indica il file esterno da aprire (vedi <c TBaseisamfile>)
TLocalisamfile(const char* name, const TTrec & desc);
// @access Public Member // @access Public Member
public: public:
@ -857,8 +861,8 @@ public:
// @cmember Costruttore. <p descname> é il nome del file che contiene la descrizione del file (estensione trr). // @cmember Costruttore. <p descname> é il nome del file che contiene la descrizione del file (estensione trr).
// <p exclusive> indica se aprire il file in modo esclusivo. // <p exclusive> indica se aprire il file in modo esclusivo.
// <p index> indica se aprire il file con indici o meno // <p index> indica se aprire il file con indici o meno
TExternisamfile(const char* name, const char * descname, bool exclusive = false, TExternisamfile(const char* name, const char * descname, bool exclusive = false, bool index = true);
bool index = true); TExternisamfile(const char* name, const TTrec &desc, bool exclusive = false, bool index = true);
// @cmember Distruttore // @cmember Distruttore
virtual ~TExternisamfile(); virtual ~TExternisamfile();
}; };